python中的转义序列给出错误的结果



为什么我的代码-

"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'"

最新更新