我看不出以下两行之间的显着差异。
然而,第一次解析,后者则没有。
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
这是一个Python错误/功能/奇怪,还是我遗漏了一些基本的东西?
答案 0 :(得分:9)
中的最后四个引号
"""\\"Axis of Awesome\\""""
被解析为"""
,即字符串的结尾,后跟"
,即开始新的字符串文字。但是,这个新文字从未完成。简单的例子:
>>> """foo""""bar"
'foobar'
>>> """foo""" "bar"
'foobar'
如果您想避免此问题,请将"""
替换为r'
或转义"
:
>>> """\\"Axis of Awesome\\\""""
'\\"Axis of Awesome\\"'
>>> r'\"Axis of Awesome\"'
'\\"Axis of Awesome\\"'
答案 1 :(得分:0)
您的最后4个引号正在评估为"" & ""
,而不是您期望将其评估为" & """
。