为什么>>> 'c\\\h'
通过python CLI生成'c\\\\h'
但>>> print 'c\\\h'
会产生c\\h
答案 0 :(得分:4)
以REPL模式运行的Python解释器打印最后一个语句结果的representation (repr
builtin)(它存在而不是None
):
>>> 5 + 6
11
对于str
个对象,表示形式为string literal,其形式与您的代码相同(除了引号可能不同),因此它包含转义序列:
>>> '\n\t1'
'\n\t1'
>>> print repr('\n\t1')
'\n\t1'
另一方面, print
语句(或函数)打印元素的pretty string-conversion (str
builtin),这使得所有转义序列都转换为实际字符:
>>> print '\n\t1'
<---- newline
1 <---- tab + 1