Programing

파이썬 문자열 앞의 ab 접두사는 무엇을 의미합니까?

lottogame 2020. 8. 25. 19:19
반응형

파이썬 문자열 앞의 ab 접두사는 무엇을 의미합니까?


파이썬 소스 코드에서 나는 다음과 같은 문자열 앞에 작은 b본 것을 우연히 발견 했습니다.

b"abcdef"

u유니 코드 문자열을 나타내는 r접두사 원시 문자열 리터럴 접두사에 대해 알고 있습니다.

뭐라고 않습니다 b및 종류의 소스 코드의있는 스탠드 접두어가없는 일반 문자열처럼 정확하게 것으로 보인다 유용하다?


이것은 Python3 bytes 리터럴 입니다. 이 접두사는 Python 2.5 및 이전 버전에는 없습니다 (일반 문자열 2.x에 해당하는 반면 일반 문자열 3.x는 u접두어 2.x 에있는 리터럴에 해당 ). Python 2.6 이상에서는 3.x와의 호환성을 위해 일반 문자열과 동일합니다 .


b접두사는 의미 bytes문자열 리터럴을 .

Python 3 소스 코드에서 사용되는 경우 표현식은 일반 유니 코드 객체가 아닌 bytes객체를 생성 합니다 . Python 셸에서 또는 목록, dict 또는 기타 컨테이너 콘텐츠의 일부로 에코되는 경우이 표기법을 사용하여 표현 객체 를 볼 수 있습니다 .strbytes

bytes객체는 기본적으로 0-255 범위의 정수 시퀀스를 포함하지만, 표시 될 때 Python은이 바이트를 ASCII 코드 포인트로 표시하여 내용을 더 쉽게 읽을 수 있도록합니다. 외부 모든 바이트 인쇄 가능한 ASCII 문자의 범위는 이스케이프 시퀀스 (예 :로 표시됩니다 \n, \x82등). 반대로 ASCII 문자와 이스케이프 시퀀스를 모두 사용하여 바이트 값을 정의 할 수 있습니다. ASCII 값의 경우 숫자 값이 사용됩니다 (예 : b'A'== b'\x41').

bytes객체는 정수 시퀀스로 구성 되기 때문에 bytes목록과 같이 0-255 범위의 값을 가진 다른 정수 시퀀스에서 객체를 생성 할 수 있습니다 .

bytes([72, 101, 108, 108, 111])

및 인덱싱은 정수를 다시 제공합니다 (그러나 슬라이스가 새로운 생산 bytes값을, 위의 예를 들어, value[1]당신을 제공 101하지만, value[:1]이다 b'H'(72)는 대문자의 ASCII 코드 포인트이기 때문에 H가 ).

bytes인코딩 된 텍스트를 포함한 이진 데이터를 모델링 합니다 . bytes값에 텍스트가 포함되어 있으면 먼저 올바른 코덱을 사용하여 디코딩해야합니다. 예를 들어 데이터가 UTF-8로 인코딩 된 경우 다음을 사용하여 유니 코드 str값을 얻을 수 있습니다 .

strvalue = bytesvalue.decode('utf-8')

반대로, 텍스트에서 이동 str에 객체 bytes당신이 필요로 인코딩 . 사용할 인코딩을 결정해야합니다. 기본값은 UTF-8을 사용하는 것이지만 필요한 것은 사용 사례에 따라 크게 달라집니다.

bytesvalue = strvalue.encode('utf-8')

생성자를 사용 bytes(strvalue, encoding)하여 동일한 작업을 수행 할 수도 있습니다 .

디코딩 및 인코딩 방법은 모두 오류 처리 방법지정 하기 위해 추가 인수를 사용합니다 .

Python 2, 버전 2.6 및 2.7은 또한 b'..'문자열 리터럴 구문을 사용하여 문자열 리터럴 생성을 지원하여 Python 2와 3 모두에서 작동하는 코드를 쉽게 만듭니다.

bytes객체는 str문자열 처럼 불변 입니다. 가변 바이트 값이 필요한 경우 bytearray()객체를 사용하십시오 .

참고 URL : https://stackoverflow.com/questions/2592764/what-does-ab-prefix-before-a-python-string-mean

반응형