Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解释python字节数组中的空格_Python - Fatal编程技术网

如何解释python字节数组中的空格

如何解释python字节数组中的空格,python,Python,我从第三方收到一些数据,无意中发现了字节数组输出的一个奇怪特性: 我收到的一些字节数组在打印到控制台的字符串中有空格,我不知道如何对这些空格进行interpet a=b'\x14\x00' b=b'\x14\x00' 打印(len(a),“:”,a[0],a[1],a[2]) 打印(len(b),“:”,b[0],b[1]) 输出结果 3 : 20 32 0 2 : 20 0 32(十六进制中的“\x20”)从何而来? ASCII空格是32,但为什么会这样解释?对于字符串“”(空格)。在Py

我从第三方收到一些数据,无意中发现了字节数组输出的一个奇怪特性:

我收到的一些字节数组在打印到控制台的字符串中有空格,我不知道如何对这些空格进行interpet

a=b'\x14\x00'
b=b'\x14\x00'
打印(len(a),“:”,a[0],a[1],a[2])
打印(len(b),“:”,b[0],b[1])
输出结果

3 : 20 32 0
2 : 20 0
32(十六进制中的“\x20”)从何而来?
ASCII空格是32,但为什么会这样解释?

对于字符串“”(空格)。在Python中,对象是一个0-255字节的可数,可以用0x14的
\x14
或ASCII字符表示,如
a
b
c
。或者两者的结合,正如您在示例中看到的

list(b'\x01\b02')   # [1, 2]
list(b'ab')         # [97, 98] (decimal values for 'a' and 'b')
list(b'\x12ab\x44') # [18, 97, 98, 68]

这些实际上是
bytes
对象,而不是
bytearray
对象,但这太迂腐了。无论如何,我不太明白你的困惑。您似乎知道它代表字节32。你查阅了吗?我猜空格(0x20)是打印出来的such@juanpa.arrivillaga谢谢你的快速回复。我想我对它为什么选择显示ASCII感到困惑,而我只希望看到十六进制值
>>字节(范围(256))
。因此python将显示ASCII字符,除非不存在ASCII字符?@SchillerFalke2来自:“字节文本中只允许ASCII字符(无论声明的源代码编码如何)。任何超过127的二进制值必须使用适当的转义序列输入字节文字。”