2024-09-26 18:06:36 发布
网友
使用时
import struct struct.pack(">H",31001)
输出是'y\x19',而我期望的是'\x79\x19'。我知道\x79在ASCII中是y,但是信息是相同的吗?为什么一个字节受到影响而另一个字节没有受到影响?我试图发送一个modbus命令,我想知道这是否导致了通信问题。我刚接触modbus,很难诊断为什么从站不响应主机。在
'y\x19'
'\x79\x19'
您看到的是repr()函数的结果,Python交互式解释器在所有非None的结果上使用该函数。在
repr()
None
Python字符串内容使用ASCIItext显示,对于任何可打印字符,\r,\n和{}分别表示ASCII回车符、换行符和制表符,其余字符使用\xhh十六进制转义符。在
\r
\n
\xhh
是的,'\x79'是与'y'完全相同的字节:
'\x79'
'y'
>>> 'y' == '\x79' True
但在生成表示时,Python只希望显示可打印的ASCII字符:
如果要查看以十六进制表示的所有代码点,可以将字符串编码为'hex':
'hex'
>>> 'y\x19'.encode('hex') '7919'
是的,信息是一样的。结构是一个字节序列,可打印字节显示为它们所代表的字符。一个以转义形式显示而另一个没有显示的原因是一个是可打印的ASCII字符,另一个不是
您看到的是
repr()
函数的结果,Python交互式解释器在所有非None
的结果上使用该函数。在Python字符串内容使用ASCIItext显示,对于任何可打印字符,}分别表示ASCII回车符、换行符和制表符,其余字符使用
\r
,\n
和{\xhh
十六进制转义符。在是的,
'\x79'
是与'y'
完全相同的字节:但在生成表示时,Python只希望显示可打印的ASCII字符:
^{pr2}$如果要查看以十六进制表示的所有代码点,可以将字符串编码为
'hex'
:是的,信息是一样的。结构是一个字节序列,可打印字节显示为它们所代表的字符。一个以转义形式显示而另一个没有显示的原因是一个是可打印的ASCII字符,另一个不是
相关问题 更多 >
编程相关推荐