当我尝试打印“\ 20%”
时,我是python的新手>>>"\20%"
为什么shell打印'\ x10%'即显示
'\x10%'
同样的情况发生在加入时也是如此
>>>l = ['test','case']
>>>"\20%".join(l)
显示
'test\x10%case'
我正在使用python 2.7.3
答案 0 :(得分:11)
'\20'
是八进制文字,与chr(2 * 8 + 0) == chr(16)
相同。
默认情况下,Python shell显示的是不是 print的输出,而是给定值的repr
表示,即十六进制'\x10'
。
如果您想要字符串\20%
,则必须转义反斜杠('\\20%'
)或使用raw string literal(r'\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,你可能会觉得有用