Python 문자값 변환 chr, ord 2가지 방법

Python에서는 문자 하나를 ascii 값으로 바꿀 수도 있고, 다시 ascii 값을 문자로 변경할 수도 있습니다. 어떤 경우에 사용할 수 있는지와 함께 Python 문자값 변환하는 2가지 방법을 살펴보겠습니다.

Python 문자값 변환: char to int

문자를 숫자값으로 변환할 때 사용하는 방법입니다. 예를 들어, “A”는 우리 눈에는 그냥 대문자 A로 보이지만 디지털 데이터로 처리할 때에는 65라는 값을 가집니다. 이와 같이 문자를 정수값으로 변환하는 함수는 ord입니다.

ord('A')
ord('B')
ord('Z')
Python

위의 명령들을 실행해 보면 아래와 같은 결과가 나옵니다. A부터 Z까지는 65부터 90의 값을 각각 가집니다.

그림 1. Python 문자값 변환: char to int를 위한 ord() 실행 결과(대문자)
그림 1. Python 문자값 변환: char to int를 위한 ord() 실행 결과(대문자)

소문자도 됩니다. 소문자는 그림 2에서 보는 것과 같이 97부터 122까지의 값으로 a~z가 표현됩니다.

그림 2. Python 문자값 변환: char to int를 위한 ord() 실행 결과(소문자)
그림 2. Python 문자값 변환: char to int를 위한 ord() 실행 결과(소문자)

Python 문자값 변환: int to char

이번에는 반대로 65라는 값으로 문자 A를 구하고 싶습니다. 이 경우에는 chr()을 이용하면 됩니다.

chr(65)
chr(90)
Python

이번에는 위에서 해 보았던 A와 Z를 그림 3과 같이 구해보았습니다.

그림 3. Python 문자값 변환: int to char를 위한 chr() 실행결과(대문자)
그림 3. Python 문자값 변환: int to char를 위한 chr() 실행결과(대문자)

문자값 변환을 위해 chr()과 ord()를 사용하는 이유

A의 다음 문자는 B입니다. ‘주어지는 문자의 다음 문자를 구하시오’라는 과제가 주어진다면 어떻게 해야 할까요? 맞습니다. 위에서 익힌 chr과 ord를 이용하면 됩니다. 직접 문제를 풀어볼까요?

def get_next_character(character):
  return chr(ord(character) + 1)
Python

Z의 경우에 대한 예외 처리를 따로 해 두지는 않았습니다. 그건 여러분 각자 필요에 따라 활용하시면 되겠죠?

그런데 이런 작업을 할 일이 어디에 있을까요? 일례로 openpyxl과 같이 스프레드시트를 작성하거나 변경할 때 이용하게 됩니다.

A컬럼에서 10개의 값을 표현한 후에는 B컬럼으로 넘어가서 10개의 값을 표현하고, 그 다음은 C컬럼으로 넘어가서 10개의 값을 표현하는 방식으로 말이죠.

chr()과 ord() 사용하는 빈도가 아주 높지는 않지만 종종 꼭 필요해서 이용하게 되는 함수입니다. 필요할 때 요긴하게 활용하시길 바랍니다.

관련 자료

Python의 Built-in Functions 페이지 그리고 저의 경험을 보태어 작성했습니다.

같이 읽으면 좋은 글

Leave a Comment