Python CLI: print 'some text' vs 'some text'
为什么>>> 'c\\\h'通过python cli生成'c\\\\h'
但是>>> print 'c\\\h'产生c\\h。
- >>> 'c\\\h'不产生c\\\\h。它生产'c\\\\h'。
- @不可能,这个问题更一般,标题反映了这一点。
- @Interjay没有回答这个问题。它仍然产生4个反斜杠
- 这是对你的问题的更正,不是回答。
在repl模式下运行的python解释器打印上一条语句(它存在而不是EDOCX1)结果的表示(repr内置):
对于str对象表示是一个字符串文字,其形式与代码相同(除了引号可能不同),因此它包括转义序列:
1 2 3 4 5 6 7 8
| >>> '
\t1'
'
\t1'
>>> print repr('
\t1')
'
\t1' |
另一方面,print语句(或函数)打印元素的漂亮字符串转换(str内置),使所有转义序列转换为实际字符:
1 2 3 4
| >>> print '
\t1'
<---- newline
1 <---- tab + 1 |
- 我从你的解释中得到的是..repr()显示的字符串与原来一样,但是print()函数格式化了它…没有用我提供的例子解释额外/扣除的反斜杠
- @艾曼纽:这里的格式不正确。就像我说的,它取代了转义序列。即'
'->换行。反斜杠:'\\'->单反斜杠。这就是为什么反斜杠在repr中加倍的原因(参见我的文章中的字符串文字链接)