打印混乱

时间:2013-01-15 10:20:52

标签: python python-2.7

当我尝试打印“\ 20%”

时,我是python的新手
>>>"\20%"

为什么shell打印'\ x10%'即显示

'\x10%'

同样的情况发生在加入时也是如此

>>>l = ['test','case']
>>>"\20%".join(l)

显示

'test\x10%case'

我正在使用python 2.7.3

3 个答案:

答案 0 :(得分:11)

'\20'是八进制文字,与chr(2 * 8 + 0) == chr(16)相同。

默认情况下,Python shell显示的是不是 print的输出,而是给定值的repr表示,即十六进制'\x10'

如果您想要字符串\20%,则必须转义反斜杠('\\20%')或使用raw string literalr'\20%')。两者都将显示为

>>> r'\20%'
'\\20%'

答案 1 :(得分:2)

\20是一个转义序列,引用DLE ASCII字符,其十进制值为16(八进制为20,十六进制为10。这样的字符由\x10字符串函数打印为repr十六进制转义。

要指定文字\20,请将反斜杠加倍("\\20")或使用原始字符串(r"\20")。

答案 2 :(得分:1)

两次打印"\20%"

如果直接打印怎么办:

>>> print '\20%'
%                       # some symbol not correctly display on this page

并使用r

>>> print r'\20%'
\20%
>>> r'\20%'         # what r do.
'\\20%'
>>> print '\\20%'     
\20%
>>> 

有些时候我对字符串有同样的疑问,我问过a question,你可能会觉得有用

相关问题