Python bug-或我的愚蠢-扫描字符串文字时下线

Python bug-或我的愚蠢-扫描字符串文字时下线,python,string,syntax-error,eol,Python,String,Syntax Error,Eol,我看不出以下两行之间有什么显著的区别 然而,前者解析,后者则不解析 In [5]: n=""" \\"Axis of Awesome\\" """ In [6]: n="""\\"Axis of Awesome\\"""" File "<ipython-input-6-d691e511a27b>", line 1 n="""\\"Axis of Awesome\\"""" ^ SyntaxError: EO

我看不出以下两行之间有什么显著的区别

然而,前者解析,后者则不解析

In [5]: n=""" \\"Axis of Awesome\\" """

In [6]: n="""\\"Axis of Awesome\\""""
  File "<ipython-input-6-d691e511a27b>", line 1
    n="""\\"Axis of Awesome\\""""
                                ^
SyntaxError: EOL while scanning string literal
[5]中的
:n=“\\\”轴
在[6]中:n=“\\\\”可怕的轴“\\”
文件“”,第1行
n=“\ \”可怕的轴\“”
^
SyntaxError:扫描字符串文字时下线

这是一个Python错误/功能/奇怪,还是我遗漏了一些基本的东西?

您的最后4个引号将被评估为
“&”
,而不是您期望它被评估为
“&”

中的最后4个引号

"""\\"Axis of Awesome\\""""
解析为
“”“
,即字符串的结尾,后跟
,即新字符串文字的开头。然而,这个新的文字永远不会完成。简单的例子:

>>> """foo""""bar"
'foobar'
>>> """foo""" "bar"
'foobar'
如果要避免此问题,请将
替换为
r'
或转义


实际上,它被解析为
”,然后是
。只需使用
而不是
”,
“`将不会转义引号,因为它是转义反斜杠。
>>> """\\"Axis of Awesome\\\""""
'\\"Axis of Awesome\\"'
>>> r'\"Axis of Awesome\"'
'\\"Axis of Awesome\\"'