あなたはそうです - それは16進表記です。リテラルバイトで
は、印刷可能なASCII文字(または標準のいずれ\n
、\t
又は\r
をエスケープ)で表されることができない任意のバイトは、NNは2桁の16進表現であり、\xNN
として表されバイト。
あなたが間違っていることは、あなたが誤っていることです。シングルエスケープシーケンスのため\xf1Y
、実際には二つの別々のバイトを表します
>>> len(b'\xf1Y')
2
>>> [bytes([b]) for b in b'\xf1Y']
[b'\xf1', b'Y']
あなたはbytesオブジェクトを反復した場合、あなたはバイトの整数値が返されます:
>>> list(b'vy\xe9\xb5\xa2\xba\xf1Y\xe8\xe1fl\x1d\x87\xacC')
[118, 121, 233, 181, 162, 186, 241, 89, 232, 225, 102, 108, 29, 135, 172, 67]
>>> bytes([118])
b'v'
>>> bytes([121])
b'y'
>>> bytes([233])
b'\xe9'
escape sequences in Python string and bytes objectsのドキュメントには、Pythonが理解できるエスケープシーケンスについての情報が少しあります(上記のものだけがバイトオブジェクトを表すために使用されています)。
ありがとうございます!はい、それは私を混乱させていました。私はそれが/ x__の16進コードと一緒にリテラルキャラクターの描写を混ぜていることは知らなかった。 –