[英]Why python interprets hex strings in different way?
我最近不得不对用\\xAB
转义语法编写的字符做一些事情,并注意到不同的字符有不同的行为:
>>>'\x61'
'a'
>>>'\x10'
'\x10'
>>>print('\x61')
a
>>>print('\x10')
我的问题是:为什么>>> '\\x10'
不产生'?'
?
它们的解释相同。 不同之处在于str.__repr__
定义的表示str.__repr__
,它更喜欢在可能的情况下使用可打印的 ASCII 字符。
print(x)
使用x.__str__
,而不是x.__repr__
,它只是返回字符串本身,然后将该字符串写入终端,此时由终端而不是 Python 决定如何显示结果.
尤其是\\x10
表示控制字符 DLE(数据链接转义),它对终端没有任何特殊意义,因此通常不显示它,或者在某些情况下,显示一些通用占位符,如?
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.