在python打印("反斜杠\")产生错误但打印("反斜杠\")不会产生错误

时间:2015-10-23 13:50:31

标签: python

在python中print("backslash \")会产生错误,但print("backslash \ ")不会产生错误。

print(backslash \")中的

在\和"之间没有空格。 这会产生SyntaxError: EOL while scanning string literal

而如果我在\和"之间留出空格。 ,然后没有错误。为什么呢?

更多例子

print(" this is double backslash \\\sad ")

上述声明不会产生任何错误,它会将输出生成为: -

this is a single backslash \\sad 

我在写这个时得到了相同的输出: -

print(" this is a single backslash \\\\sad ")

在这里,我分别对每个\进行了转义,所以这是有效的,但为什么前一个有效呢?

2 个答案:

答案 0 :(得分:4)

\字符是转义序列字符。 \"将引用转义为字符串值的一部分,而不是用于表示字符串开头或结尾的分隔符。

通过添加空格,您生成了一个不存在的转义序列,而\则被解释为文字反斜杠。

请参阅string literals documentation

  

反斜杠(\)字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符。

但是没有识别的转义序列的\始终是普通的\。请参阅文档以了解已识别的序列。

请注意,这也意味着您需要能够转义转义序列;因此\\生成一个反斜杠文字。这样,您可以在字符串中包含\\n,并将其解释为一个\字符和n,而\n会生成一个换行符。

答案 1 :(得分:1)

因为当你print("backslash \")逃离最后"因此你会收到错误..有关转义字符的更多信息:https://docs.python.org/2/reference/lexical_analysis.html