我看不到以下两行之间的显着差异。

但是前者解析,而后者则没有。

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的错误/功能/怪胎,还是我缺少基本的东西?

最佳答案

中的最后四个引号

"""\\"Axis of Awesome\\""""

被解析为""",即字符串的结尾,然后解析为",即新字符串文字的开头。但是,这个新的文字永远不会完成。简单的例子:
>>> """foo""""bar"
'foobar'
>>> """foo""" "bar"
'foobar'

如果要避免此问题,请将"""替换为r'或转义":
>>> """\\"Axis of Awesome\\\""""
'\\"Axis of Awesome\\"'
>>> r'\"Axis of Awesome\"'
'\\"Axis of Awesome\\"'

关于python - Python错误-或我的愚蠢-扫描字符串文字时停产,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11328335/

10-11 22:27
查看更多