在python中,我试图将字符串文字转换为等效的十六进制4字节。这是我正在做的事的一个例子:
import struct
struct.pack("<i", int("08050030", 16))
>>'0\x00\x05\x08'
为什么输出渲染是这样的?我会期望
\x30\x00\x05\x08
吗? 最佳答案
如果REPL这样做,您可能会感到惊讶
>>> "hello"
'\x68\x65\x6c\x6c\x6f'
幸运的是没有。可打印字符按其自身打印。无法打印的字符使用诸如
'\n'
之类的快捷方式,并且当没有可用的快捷方式时,最后的方法就是使用十六进制表示法。在文字中的任何地方使用十六进制编码是完全可以接受的
>>> '\x30\x00\x05\x08'
'0\x00\x05\x08'
使用它们进行显示并不是Python的偏爱。