在python SyntaxError:EOL中扫描字符串文字

Yit*_*ong 4 python-3.x

我正在使用python 3.5.1.当我试着这个

print(r'\t\\\')
Run Code Online (Sandbox Code Playgroud)

我收到错误:SyntaxError:EOL扫描字符串文字时.但是这个效果很好

print(r'\t\\')
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

ele*_*han 5

在第一个你逃避你的结束',因此SyntaxError你提出的问题,因为你的字符串现在永远不会终止.在第二个你逃脱决赛,\所以'没有逃脱.'\\'是一个字面反斜杠而不是一个转义,这就是为什么'在第二个版本中没有转义,以及为什么'\'第一个版本的末尾没有转义.

更新:

不知怎的,我错过了你在谈论原始字符串.不过,请参阅3.5文档:

即使在原始文字中,引号也可以使用反斜杠进行转义,但反斜杠仍保留在结果中; 例如,r"\""是一个有效的字符串文字,由两个字符组成:反斜杠和双引号; r"\"不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾).具体来说,原始文字不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符).另请注意,单个反斜杠后跟换行符被解释为文本中的两个字符,而不是行继续.