5

当我尝试打印“\20%”时,我是 python 新手

>>>"\20%"

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

'\x10%'

加入时也会发生同样的情况

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

表明

'test\x10%case'

我正在使用 python 2.7.3

4

3 回答 3

11

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

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

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

>>> r'\20%'
'\\20%'
于 2013-01-15T10:26:11.887 回答
2

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

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

于 2013-01-15T10:27:44.017 回答
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%
>>> 

前段时间我对字符串有同样的疑问,我问了一个问题,你可能会发现有帮助

于 2013-01-15T10:47:45.223 回答