프로그래밍 공부하기

[Python] 아스키코드변환: ord, chr 본문

Web/[Other] Language

[Python] 아스키코드변환: ord, chr

ihl 2021. 1. 8. 21:52

아스키코드표

  아스키코드란 컴퓨터에서 문자를 표기하기위한 부호체계이다. 0-127(7bit)사이의 숫자를 각각 하나의 문자에 대응시켜놓은 것이다. 총 8bit로 구성되어있으며 이 중 7bit를 문자표현에 사용하며, 나머지1bit는 과거 에러 검출을 위한 paritiy비트(7개의 비트 중 1의 개수가 홀수면 1, 짝수면 0)로 사용되었으나 현재는 더이상 쓰이지 않고 0을 채운다. 아스키코드는 현재 가장 많이 사용되는 UTF-8 유니코드와 호환된다.

 

1. chr(i)

  chr은 숫자를 입력받아 해당 숫자에 해당하는 유니코드(파이썬 소스 코드의 기본 인코딩은 UTF-8)를 반환하는 함수이다. 유니코드가 아스키코드와 호환되므로 0-127범위의 숫자가 입력되면 해당 숫자에 해당하는 아스키코드를 반환한다는 의미와 동일하다.

chr(97)   #'A'
chr(8364) #'€'

 

2. ord(c)

  ord는 문자를 입력받아 유니코드 값(숫자)를 반환하는 함수이다.

ord('A') #97
ord('€') #8364

 

  ord와 chr은 다음과 같이 활용할 수 있다.

ord('c') - int(ord('a'))+1 #c -> 3으로 변환(c는 알파벳의 3번째 숫자)
ord('f') - ord('b')        #b-f사이 거리는 4
print([chr(i) for i in range(ord('a'), ord('z'))]) #['a', 'b', 'c' .... 'z']
if ord('a') < ord(x) < ord('z'): #x는 소문자 알파벳이다 islower()와 같은 결과
  print(x)

 

Comments