Python의 원시 문자열 및 유니코드 문자열
Python의 원시 문자열
Python의 원시 문자열 리터럴은 여는 따옴표 앞에 r
또는 R
이 접두사로 붙는 일반 문자열을 정의합니다. 백슬래시(\
)가 문자열에 있는 경우 원시 문자열은 이 문자를 리터럴 문자로 취급하지만 이스케이프 문자는 취급하지 않습니다.
예를 들어,
print(r"\n")
print(r"\t")
출력:
\n
\t
줄 바꿈이나 새 탭과 같은 이스케이프 시퀀스의 시작으로 오인되지 않도록 문자열을 정의할 때 모든 백슬래시를 두 배로 늘려야 합니다. 정규 표현식의 구문과 Windows 파일 경로
를 표현할 때 이러한 구문 적용을 볼 수 있습니다.
r
은 백슬래시를 리터럴로 취급하기 때문에 r'\'
은 구문 오류를 발생시킵니다. r
접두사가 없으면 백슬래시는 이스케이프 문자로 처리됩니다.예시:
text = "Hello\nWorld"
print(text)
출력:
Hello
World
원시 문자열 플래그 r
이 없으면 백슬래시가 이스케이프 문자로 처리되므로 위의 문자열이 인쇄될 때 새 줄 이스케이프 시퀀스가 생성됩니다. 따라서 텍스트의 두 문자열은 출력에 표시된 대로 별도의 줄에 인쇄됩니다.
동일한 텍스트 예제를 사용하여 문자열 앞에 r
접두사를 추가합니다.
예시:
text = r"Hello\nWorld"
print(text)
출력:
Hello\nWorld
출력에서 원시 문자열 플래그는 백슬래시를 리터럴로 취급하고 백슬래시가 포함된 텍스트를 인쇄합니다. 따라서 백슬래시 문자가 이스케이프되지 않기 때문에 입력과 출력이 모두 동일합니다.
예를 들어 '\\n'
과 r'\n'
은 같은 값을 갖습니다.
print("\\n")
print(r"\n")
파이썬 유니코드 문자열
유니코드는 파이썬 문자열을 저장하는 한 가지 방법입니다. 유니코드는 모든 언어 유형의 문자열을 저장할 수 있습니다. 두 번째 방법은 Python에서 str
로 표시되는 ASCII
유형의 문자열 저장소입니다. str
은 Python에서 문자열을 저장하는 기본 데이터 유형입니다.
문자열을 유니코드 유형으로 변환하려면 u'string'
과 같이 텍스트 앞에 u
를 넣거나 unicode('string')
와 같은 unicode()
함수를 호출합니다.
u'text'
는 유니코드 문자열이고text
는 바이트 문자열입니다. 유니코드 개체는 더 많은 메모리 공간을 차지합니다.
예를 들어,
test = u"一二三"
print(test)
출력:
一二三