这很好用:
print(r'\\')
这不是:
print(r'\')
为什么?
编辑。我理解doc说的是什么。但我不明白为什么这个错误/特征/缺陷必须存在。如果这个表达式'\'
失败,我不会感到奇怪,因为很明显反斜杠正在逃避引用。但是,原始字符串是不是原始?
作为一个反例,在Bash中你可以这样写:
echo '\'
它按预期工作。
与解析器有什么关系吗?
答案 0 :(得分:5)
具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。另请注意,后跟换行符的单个反斜杠被解释为字符串的一部分,而不是行连续符。
答案 1 :(得分:1)
当您编写print(r'\')
时,Python会将该语句中的\'
理解为一个字符。因为python引发了语法错误,因为print函数内部有一个不完整的字符串。
例如,如果您需要打印i am "free" man
,则应编写
print("i am \"free\" man")
答案 2 :(得分:1)
这个限制是因为您需要在原始内容中包含'
。否则无法将bob said "I'm not hungry"
放入字符串中。
所以你最终会遇到一个奇怪的情况,在这种情况下你需要一个转义字符。因此,在原始字符串中,您使用'
转义\
,并且\
保留在字符串中。
所以r'bob said "I\'m not hungry"'
是!!
答案 3 :(得分:0)
简单的解决方案是使用三重引号。例如:r"""abc"hello'world"""
。即使您使用原始字符串,转义序列在某些情况下仍然有效。