2017-04-27 186 views
2

我有一个简单的问题在这里:为什么转义字符变成像python中的 x0这样的字符串?

mylist=[1,2,3] 
mylist.insert(0, '\0') 
print(mylist) 

给我们:

['\x00', 1, 2, 3] 

换句话说,为什么和转义字符\是如何变成\x0
这里有一些目的吗?这是一些编码的东西?

为什么python返回一个表示而不是另一个表示?

+4

'\ 0'和'\ x00'只是两个不同的同样的事情表示:一个零字节。 'representation'您的意思是 –

+0

,人类可读的打印输出?或者是其他东西?为什么同样的事情有两种不同的表述? DRY不是所有编程和设计水平的基本单位? –

+0

DRY与它完全无关。而且总是有很多想法的表示,人类可读或不可读。就你的情况而言,yu的八进制和十六进制表示为0. –

回答

2

所以\<various single characters>有特殊含义,\xYY是一个字符,它是十六进制值YY。下面的(和其他人)是等价的:

>>> assert '\0' == '\x00' # null 
>>> assert '\t' == '\x09' # tab 
>>> assert '\r' == '\x0d' # carriage return 
>>> assert '\n' == '\x0a' # line feed 

这是因为标签编码为9等,而在一般情况下,Python会告诉你最普遍的代表性,这是一个字符的十六进制值,如果它不能显示你的角色本身。

String Literal Docs

相关问题