6

次の 2 つの行に大きな違いは見られません。

しかし、前者は解析し、後者は解析しません。

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 のバグ/機能/奇妙さですか、それとも基本的なものが欠けていますか?

4

2 に答える 2

9

の最後の 4 つの引用符

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

として解析されます。つまり、文字列の末尾に、新しい文字列リテラルの先頭が"""続きます。"ただし、この新しいリテラルは決して完成しません。簡単な例:

>>> """foo""""bar"
'foobar'
>>> """foo""" "bar"
'foobar'

この問題を回避したい場合は、次のものに置き換える"""r'エスケープして"ください。

>>> """\\"Axis of Awesome\\\""""
'\\"Axis of Awesome\\"'
>>> r'\"Axis of Awesome\"'
'\\"Axis of Awesome\\"'
于 2012-07-04T11:39:56.073 に答える
0

最後の 4 つの引用符は、"" & ""期待どおりに評価されるのではなく、として評価されてい" & """ます。

于 2012-07-04T11:38:41.270 に答える