파이썬/Algorithms
python 아스키코드(ASCII) ord, chr
hanshow113
2021. 11. 2. 10:49
컴퓨터는 문자도 0과 1의 숫자로 기억하는데, 이 때 통상적으로 숫자와 어떤 문자를 대응시키는가에 따른 인코딩 방식으로 아스키 코드 방식을 많이 사용함
표준 아스키 코드는 0~127번까지만 사용
128~255 특수 문자
0~127 자주쓰는 문자
0~31 특수제어코드
숫자 0~9 (ASCII): 48 ~ 57
알파벳 A~Z (ASCII): 65 ~ 90
알파벳 a~z (ASCII): 97 ~ 122
파이썬에서 이를 활용하여 아스키코드를 문자열로 / 문자열을 아스키코드로 변환하는 함수가 각각 chr, ord 임
print(ord('a'))
>>> 97
print(chr(97))
>>> 'a'
종종 문자열 알고리즘 문제를 풀다가 보면 a~z까지의 문자가 필요한 경우가 있는데, 이 때 아스키코드를 활용하면 ['a', 'b', ```, 'z'] 같은 알파벳 리스트를 만들 필요가 없음
예시) L = ['a', 'b', 'c', 'd', 'e', 'f']
주어진 문자열 중 리스트 L의 원소가 각각 몇 번 쓰였는지 확인하는 경우
input: 'abbcd'
output: 1 2 1 1 0 0
# 아스키코드 사용 X
## 조회해야 할 문자열을 생성해야 함
a = ['a', 'b', 'c', 'd', 'e', 'f']
s = 'abbcd'
for i in a:
print(s.count(i), end=' ')
>>>> 1 2 1 1 0 0
========================================
# 아스키코드 사용 O
s = 'abbcd'
for i in range(ord('a'), ord('f')+1):
print(s.count(chr(i)), end=' ')
>>>> 1 2 1 1 0 0