打印混乱

Pra*_*mna 5 python python-2.7

当我尝试打印"\ 20%"时,我是python的新手

>>>"\20%"
Run Code Online (Sandbox Code Playgroud)

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

'\x10%'
Run Code Online (Sandbox Code Playgroud)

当这样做时,加入也会发生同样的情况

>>>l = ['test','case']
>>>"\20%".join(l)
Run Code Online (Sandbox Code Playgroud)

表明

'test\x10%case'
Run Code Online (Sandbox Code Playgroud)

我使用的是python 2.7.3

phi*_*hag 11

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

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

如果你想要字符串\20%,你必须转义backaslash('\\20%')或使用原始字符串文字(r'\20%').两者都将显示为

>>> r'\20%'
'\\20%'
Run Code Online (Sandbox Code Playgroud)

  • @perpetual:你在字符串的`repr`中看到了额外的反斜杠,但是如果你'打印'它或者把它写到文件中,你只会看到一个. (2认同)