为什么我的代码-
"She said "Don't" panic"
给出结果——
'She said "don't" panic'
为什么在结果中在 n 之后插入斜杠?我该如何预防它?
我假设你在解释器中运行它。默认情况下,解释器在打印时使用对象的__repr__()
方法。但是,print()
使用__str__()
。
>>> s = "She said "Don't" panic"
>>> s
'She said "Don't" panic'
>>> print(s)
She said "Don't" panic
>>> print(s.__str__())
She said "Don't" panic
>>> print(s.__repr__())
'She said "Don't" panic'
__repr__()
方法将返回用'
包装的字符串。为了将这些'
与字符串中的任何区分开来,它转义了那些内部'
。
这有一个有趣的结果
>>> s.__str__()
'she said "Don't" panic'
因为它是打印__repr__("She said "Don't" panic")
,它将把那根绳子包裹在'
中并转义内部的绳子。
在pythonshell中运行上面提供的字符串时,它会打印出从标准__repr__()
函数返回的原始字符串,该函数包含在字符串中包含单引号所需的转义字符。
>>> "She said "Don't" panic"
'She said "Don't" panic'
您可以简单地将其包装在 print 语句中,该语句使用__str__()
来获取您要查找的返回字符串
>>> print("She said "Don't" panic")
She said "Don't" panic
Python 中的 \t 转义字符是水平制表符转义字符。
如果您试图在整个报价中转引"不要惊慌",它将是:
"She said 'Don't panic'"