可能重复:
为什么我不能用 \ 结束原始字符串
给定r'\\'
等于'\\\\'
,为什么r'\'
不等于'\\'
?
我在 python3.2 上得到的是
print(r'\')
File "<stdin>", line 1
print(r'\')
^
SyntaxError: EOL while scanning string literal
可能重复:
为什么我不能用 \ 结束原始字符串
给定r'\\'
等于'\\\\'
,为什么r'\'
不等于'\\'
?
我在 python3.2 上得到的是
print(r'\')
File "<stdin>", line 1
print(r'\')
^
SyntaxError: EOL while scanning string literal
您不能将反斜杠作为原始字符串中的最后一个字符,除非它是偶数个反斜杠的一部分;它逃脱了结束语。
将此与以下内容进行比较:
>>> r'\ '
'\\ '
从字符串文字文档:
当存在
'r'
or'R'
前缀时,反斜杠后面的字符将不加更改地包含在字符串中,并且所有反斜杠都保留在字符串中。例如,字符串文字r"\n"
由两个字符组成:反斜杠和小写字母'n'
。字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r"\""
是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\"
不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。