파이썬 문자열 앞에 있는 b 접두사는 무엇을 의미합니까?
우연히 발견한 파이썬 소스 코드에서 다음과 같은 문자열 앞에 작은 b가 있습니다.
b"abcdef"
유니코드 문자열을 나타내는 접두사와 원시 문자열 리터럴의 접두사에 대해 알고 있습니다.
무엇을 합니까?b
어떤 종류의 소스 코드를 의미하며 접두사가 없는 일반 문자열과 정확히 유사한 것처럼 보이는데 유용합니까?
그b
접두사는 문자열 리터럴을 나타냅니다.
Python 3 소스 코드에서 사용되는 것을 보면 정규 Unicode 개체가 아닌 개체를 만듭니다.Python 쉘이나 목록, 딕트 또는 기타 컨테이너 콘텐츠의 일부로 메아리치는 것을 보면,bytes
이 표기법을 사용하여 표현된 개체입니다.
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[0]
너에게 주는72
,그렇지만value[:1]
이라b'H'
72는 대문자 H)의 ASCII 코드 포인트입니다.
bytes
인코딩된 텍스트를 포함한 모델 이진 데이터.만약 당신이bytes
값에 텍스트가 포함되어 있으므로 먼저 올바른 코덱을 사용하여 디코딩해야 합니다.예를 들어 데이터가 UTF-8로 인코딩된 경우 유니코드를 얻을 수 있습니다.str
값 포함:
strvalue = bytesvalue.decode('utf-8')
반대로, 텍스트에서 이동하려면str
에 반대하는.bytes
인코딩해야 합니다.사용할 인코딩을 결정해야 합니다. 기본값은 UTF-8이지만 필요한 것은 사용 사례에 따라 크게 다릅니다.
bytesvalue = strvalue.encode('utf-8')
생성자를 사용할 수도 있습니다.bytes(strvalue, encoding)
마찬가지로.
디코딩 및 인코딩 방법 모두 오류 처리 방법을 지정하기 위해 추가 인수를 사용합니다.
2 2및 2 Python 2, 버전 2.6및 2.7은을 사용하여 문자열 것을 합니다.b'..'
문자열 리터럴 구문을 사용하여 Python 2와 3 모두에서 작동하는 코드를 쉽게 만들 수 있습니다.
bytes
은 물는불변다니, 치마체처럼입니다.str
현악기는.가변 바이트 값이 필요한 경우 개체를 사용합니다.
은 Python3입니다.bytes
문자 그대로의이 접두사는 Python 2.5 이상 버전에는 없습니다(일반 문자열 2.x와 동일한 반면 일반 문자열 3.x는 다음을 포함하는 리터럴과 동일합니다).u
2.x)의 접두사입니다.Python 2.6+에서는 3.x와의 호환성을 위해 일반 문자열과 동일합니다.
언급URL : https://stackoverflow.com/questions/2592764/what-does-a-b-prefix-before-a-python-string-mean
'programing' 카테고리의 다른 글
부모와 관련된 자식 요소의 위치를 얻으려면 어떻게 해야 합니까? (0) | 2023.05.06 |
---|---|
사용 문 안에 예외가 발생해도 Dispose가 계속 호출됩니까? (0) | 2023.05.06 |
사용 안 함 경고: DB 클래스의 이벤트 수신이 사용되지 않으며 다음 주 버전에서 제거됩니다. (0) | 2023.05.06 |
커넥터 버전이 변경된 경우 SpringBoot 앱이 MariDB에 연결할 수 없음 (0) | 2023.05.01 |
Azure 함수가 ILogger를 바인딩하지 못함 (0) | 2023.05.01 |