什么是Python字节串?
什么是Python字节串?
我所能找到的只是关于如何编码为字节串或如何解码为ascii
or的主题utf-8
。我正在尝试了解它是如何工作的。在普通的ASCII字符串中,它是一个数组或字符列表,每个字符代表0到255之间的ASCII值,因此您才能知道数字代表的字符。在Unicode中,字符的8或16字节表示形式可以告诉您它是什么字符。
那么什么是字节串?Python如何知道哪些字符表示为什么?它是如何工作的?由于您可以打印甚至返回这些字符串,并且可以显示字符串表示形式,所以我不太了解…
好的,所以我的意思是 肯定会 在这里错过。有人告诉我这是一个 不可变 的字节序列,没有任何特殊的 解释 。
字节序列。好吧,我们说一个字节:
'a'.encode()
return b'a'
。
很简单。为什么我可以阅读 a ?
说我得到的ASCII值 一个 ,这样做:
printf "%d" "'a"
返回 97 。好的,好的ASCII字符 a 的整数值。如果我们将 97
解释为ASCII,用C表示char
,则得到字母a
。很公平。如果将字节表示形式转换为位,我们将得到:
01100001
2 ^ 0 + 2 ^ 5 + 2 ^ 6 = 97 。凉。
那么为什么要'a'.encode()
返回b'a'
而不是01100001
??
如果 没有 特定的 解释 ,它是否应该返回类似的内容b'01100001'
?
它 看起来 像它解释它像ASCII。
有人提到它正在调用__repr__
字节串,因此以易于阅读的形式显示。但是,即使我这样做:
with open('testbytestring.txt', 'wb') as f:
f.write(b'helloworld')
它 仍然 会helloworld
以常规字符串的形式插入文件中,而不是以字节序列的形式插入…那么ASCII中的字节字符串是吗?