反斜杠(backslash)字符用于转义那些具有特殊含义的字符,如换行符、反斜杠本身或引号字符。字符串可以选择以字母 "r "或 "R "为前缀;这样的字符串被称为原始字符串,对反斜杠转义序列使用不同的规则。
除非有'r'或'R'的前缀,否则字符串中的转义序列将按照类似于标准C语言的规则进行解释。
在与标准C的严格兼容中,最多接受三个八进制数字,但是不限数量的十六进制数字被认为是十六进制转义的一部分(然后在8位实现中使用所得十六进制数字的低8位)。
与标准C不同的是,所有未被识别的转义序列都被留在字符串中而不被改变,也就是说,反斜杠被留在字符串中。(这种行为在调试时很有用:如果转义序列打错了,产生的输出更容易被识别为断裂)。
当'r'或'R'前缀出现时,反斜线仍用于引用下面的字符,但所有反斜线都留在字符串中。例如,字符串文字r"/n "由两个字符组成:一个反斜线和一个小写的`n'。字符串引号可以用反斜杠转义,但反斜杠仍留在字符串中;例如,r"\"是一个有效的字符串字面,由两个字符组成:一个反斜杠和一个双引号;r"\"不是一个值字符串字面(即使是一个原始字符串也不能以奇数反斜杠结束)。具体来说,一个原始字符串不能以单个反斜杠结尾(因为反斜杠会转义到后面的引号字符)。还要注意的是,单反斜杠后面的换行被解释为这两个字符是字符串的一部分,而不是续行。