SyntaxError:使用反斜杠escap扫描字符串文本时的EOL

2024-04-26 07:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这是一个noob问题,但对Python来说是个新问题,并试图理解以下内容:

为什么反斜杠转义在这里正常工作:

>>> print "this is \\\ a string"
this is \\ a string

但当我试着:

^{pr2}$

我得到:

SyntaxError: EOL while scanning string literal

Tags: stringisthisprint斜杠whileliteralnoob
3条回答

第一个\将转义第二个\。现在,第三个\等待转义另一个字符,但是得到'并转义它。这就是为什么它显示了这个错误。如果你尝试这样做,你会得到同样的错误

>>> print 'abc    # Line ended while scanning string

在这种情况下

^{pr2}$

第三个\得到一个不是特殊字符的空格字符。因此,第三个\不会转义任何内容,而是字符串的一部分。在

当您这样做时:

print "\\\"

第一个\覆盖第二个,第三个覆盖"(引用本身)。所以它就像python看不到结尾的引号,所以得到了错误。在

第一个反斜杠转义第二个反斜杠,第三个反斜杠转义双引号,这样就无法终止字符串。您需要print "\\\\"或{},这取决于您实际尝试获得的输出。{cd3>将打印第二个

相关问题 更多 >