Python
[Python] 함수 ord()와 chr()를 이용한 아스키코드 변환
에스더
2022. 3. 11. 14:02
먼저, 아스키코드란 미국정보교환표준부호 (American Standard Code for Information Interchange - ASCII)의 줄임말로 대표적인 문자 인코딩 방법을 의미한다.
(https://ko.wikipedia.org/wiki/ASCII)
파이썬에서는 ord()와 chr()함수를 이용하여 아스키코드를 활용할 수 있다.
ord() 함수는 문자를 아스키코드로 변환해 준다. 한글과 특수문자역시 가능하다.
>>> ord('a')
97
>>> ord('h')
104
>>> ord('ㄷ')
12599
>>> ord('@')
64
chr() 함수는 반대로 아스키코드를 문자로 변환해 준다.
>>> chr(97)
'a'
>>> chr(104)
'h'
>>> chr(12599)
'ㄷ'
>>> chr(64)
'@'
만약 텍스트의 알파벳을 그 다음 순서의 알파벳으로 변경해야하는 문제가 주어졌다고 해보자.
이 두 함수를 사용하지 않았을 때 코드가 아래와 같다면
text = 'abcd'
alphabet_list = [w for w in 'abcdefghijklmnopqrstuvwxyz']
sol = ''
for w in text:
if w=='z':
sol += 'a'
else:
sol += alphabet_list[alphabet_list.index(w)+1]
>>> sol
'bcde'
ord()와 chr()함수를 사용했을 때 코드가 다음과 같이 간단해질 수 있다.
text = 'abcd'
sol = ''.join(chr(ord('a'))if w=='z' else chr(ord(w)+1) for w in text)
>>> sol
'bcde'