2017-04-27 35 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

相關問題