为什么Python的原始字符串文字不能以单个反斜杠结尾?

从技术上讲,文档中描述了任意数量的反斜杠。

>>> r'\'

File "<stdin>", line 1

r'\'

^

SyntaxError: EOL while scanning string literal

>>> r'\\'

'\\\\'

>>> r'\\\'

File "<stdin>", line 1

r'\\\'

^

SyntaxError: EOL while scanning string literal

似乎解析器可以将原始字符串中的反斜杠视为常规字符(这不是原始字符串的全部含义吗?),但是我可能缺少明显的东西。

回答:

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

因此,原始字符串不是100%原始的,仍然存在一些基本的反斜杠处理。

以上是 为什么Python的原始字符串文字不能以单个反斜杠结尾? 的全部内容, 来源链接: utcz.com/qa/427505.html

回到顶部