본문 바로가기
AI/AI 이론

[EP. 5-1] Python에서 내부적으로 문자열을 처리하는 방법

by 티옌.liy 2021. 12. 1.

[세줄요약]

1. 파이썬은 작은따옴표(') 혹은 큰따옴표(")로 문자열을 사용할 수 있다.

2. 파이썬3은 문자열 데이터를 유니코드로 인코딩한 뒤 컴퓨터의 저장장치에 저장한다.

3. 컴퓨터에 저장된 기록을 보기 위해서는 사람이 알 수 언어로 변환하는 디코딩 과정을 거쳐야한다.


Python에서 텍스트 데이터를 문자열로 저장하는법

Python에서 텍스트 데이터는 문자열(string)이라는 데이터 타입으로 사용할 수 있습니다.

파이썬에서 문자열을 리터럴(literal). 즉, 작은따옴표(') 혹은 큰따옴표(")로 묶어 아래 코드처럼 사용합니다.

 

my_str = 'Welcome!'
ur_str = "You're welcome."

print(my_str) #Welcome!
print(ur_str) #You're welcome.

type(my_str) #str
type(ur_str) #str

 

위 코드처럼 변수에 데이터를 할당하면, 데이터는 RAM에 적재됩니다.

이때, 파이썬3은 문자열 데이터를 유니코드로 인코딩한 뒤 RAM에 적재합니다.

(파이썬2에서는 아스키 코드로 인코딩한 후에도 유니코드(unicode)로 변환하는, 2번의 변환과정을 진행해야합니다)

 


 

인코딩(encoding)과 디코딩(decoding)

컴퓨터는 모든 데이터를 아래 그림과 같이 1과 0, 이진 데이터(binary data)로 처리합니다.

1 비트(bit) = 8 바이트(byte) 

 

그래서, 위 문자열 데이터를 컴퓨터가 처리할 수 있도록 숫자로 변형해주어야합니다.

때문에, 문자열 및 모든 데이터 타입을 바이트로 변환하는 과정을 진행하며, 이 과정을 인코딩이라 합니다.

반대로, 컴퓨터에 있는 기록을 사람이 보기 위해서는 바이트를 특정 데이터 타입으로 변환하는 디코딩 과정을 거쳐 사람이 알아볼수 있는 언어 및 숫자로 변형합니다.

 

 

텍스트 데이터의 처리 과정

 


 

인코딩와 디코딩을 하는 방법은 여러가지가 있지만, 파이썬에서는 국제표준기구인 ISO에서 지정한 '유니코드'라는 기준을 사용합니다.

그리고 아래 함수로 문자와 숫자를 유니코드로 변환하거나, 유니코드를 문자 및 숫자로 변화하는 기능을 지원합니다.

 

  • ord() : 해당 문자에 대응하는 유니코드 숫자를 반환합니다.
  • chr() : 해당 유니코드 숫자에 대응하는 문자를 반환합니다.
print(ord('a'))  # 97
print(ord('A'))  # 65
print(chr(97))   # a

print(ord('가')) # 44032
print(chr(0xAC00))  # 가

 

좀 더 개념을 정확히 이해하고 싶으시다면 아랫글들을 참고하시면 좋습니다.

 

댓글