IPython原始字符串的行延续中的不一致行为
CPython和ipythonshell对原始字符串的行延拓似乎有着微妙的不同解释。这些行为很容易证明IPython原始字符串的行延续中的不一致行为,python,ipython,Python,Ipython,CPython和ipythonshell对原始字符串的行延拓似乎有着微妙的不同解释。这些行为很容易证明 示例1:原始字符串的行延续 CPython结果: >>> r'abc\ ... def' 'abc\\\ndef' IPython外壳结果: In [1]: r'abc\ ...: def' Out[1]: 'abcdef' In [1]: r'abc\\ ...: def' Out[1]: 'abc\\def' 示例2:原始字符串的转义行继续 CP
- 示例1:原始字符串的行延续
>>> r'abc\
... def'
'abc\\\ndef'
IPython外壳结果:
In [1]: r'abc\
...: def'
Out[1]: 'abcdef'
In [1]: r'abc\\
...: def'
Out[1]: 'abc\\def'
- 示例2:原始字符串的转义行继续
\\
之后按
):
显然,CPython结果在两种情况下都是正确的,因为它符合以下部分:
[…]还要注意,一个反斜杠后跟一个换行符是
将这两个字符解释为字符串的一部分,而不是
行继续
下一段:
[…]反斜杠可以用前面的反斜杠转义;然而,两者
保持警惕
这是ipythonshell中的一个bug吗
相关系统信息:IPython 2.4.1,在Fedora 22上使用CPython 2.7.10和3.4.2进行了测试。该问题已在
IPython
github上提出
它被认为是一个bug,但似乎优先级不高。它只影响原始字符串
我想不出哪种情况会让我烦恼。我在哪里需要“abc\\\ndef”
In [1]: r'abc\\
...: def'
Out[1]: 'abc\\def'