为什么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