转义字符是由反斜杠 \
跟随的一个字符组成。它告诉解释器这个转义字符(序列)具有特殊含义。例如,\n
是一个代表换行的转义序列。当 Python 在字符串中遇到这个序列时,它理解为需要开始新的一行。
除非存在前缀 'r'
或 'R'
,否则字符串和字节字面量中的转义序列将根据类似于标准 C 使用的规则进行解释。在 Python 中,如果字符串在引号之前加上前缀 "r" 或 "R",则该字符串变成一个原始字符串。因此 'Hello'
是一个普通字符串,而 r'Hello'
是一个原始字符串。
示例
在下面的示例中,我们实际演示了原始字符串和普通字符串。
normal = "Hello"
print(normal)
raw = r"Hello"
print(raw)
以上代码的输出如下:
Hello
Hello
在一般情况下,两者之间没有区别。但是,当转义字符嵌入到字符串中时,普通字符串实际上会解释转义序列,而原始字符串不会处理转义字符。
示例
在下面的示例中,当打印普通字符串时,转义字符 \n
被处理成引入一个新行。然而,由于原始字符串操作符 r
的存在,转义字符的效果并没有按照其意义翻译。
normal = "Hello\nWorld"
print(normal)
raw = r"Hello\nWorld"
print(raw)
当运行以上代码时,它将打印以下结果:
Hello
World
Hello\nWorld
Python 中的转义字符
下表显示了 Python 中使用的不同转义字符:
序号 |
转义序列及其含义 |
1 |
\<newline> |
2 |
\\ |
3 |
`'' |
4 |
\" |
5 |
\a |
6 |
\b |
7 |
\f |
8 |
\n |
9 |
\r |
10 |
\t |
11 |
\v |
12 |
\ooo |
13 |
\xhh |
转义字符示例
下面的代码演示了上表中列出的转义序列的使用:
s = 'This string will not include \\ backslashes or newline characters.'
print(s)
s = 'The \\ character is called backslash'
print(s)
s = 'Hello \'Python\''
print(s)
s = "Hello \"Python\""
print(s)
s = 'Hel\\blo'
print(s)
s = 'Hello\\a'
print(s)
s = 'Hello\\nPython'
print(s)
s = 'Hello\\tPython'
print(s)
s = "hello\\fworld"
print(s)
s = "\\101"
print(s)
s = "\\x41"
print(s)
它将产生以下输出:
This string will not include backslashes or newline characters.
The \ character is called backslash
Hello 'Python'
Hello "Python"
Helo
Hello
Hello
Python
hello
world
A
A