转义字符
转义字符是后跟反斜杠 (\) 的字符。它告诉 Interpreter 这个转义字符 (序列) 具有特殊含义。例如,\n 是表示换行符的转义序列。当 Python 在字符串中遇到此序列时,它明白它需要开始一个新行。
除非存在 'r' 或 'R' 前缀,否则 string 和 bytes literals 中的转义序列将根据类似于标准 C 使用的规则进行解释。在 Python 中,如果字符串在引号前以 “r” 或 “R” 为前缀,则字符串将成为原始字符串。因此 'Hello' 是普通字符串,而 r'Hello' 是原始字符串。
例在下面的示例中,我们实际演示了原始字符串和普通字符串。
# normal string
normal = "Hello"
print (normal)
# raw string
raw = r"Hello"
print (raw)
上述代码的输出如下所示 -
Hello
Hello
Hello
在正常情况下,两者之间没有区别。但是,当转义字符嵌入到字符串中时,普通字符串实际上会解释转义序列,而原始字符串不会处理转义字符。
例在下面的示例中,当打印普通字符串时,将处理转义字符 '\n' 以引入换行符。但是,由于原始字符串运算符 'r' ,转义字符的效果不会根据其含义进行转换。
normal = "Hello\nWorld"
print (normal)
raw = r"Hello\nWorld"
print (raw)
在运行上述代码时,它将打印以下结果 -
Hello
World
Hello\nWorld
World
Hello\nWorld
Python 中的转义字符
下表显示了 Python 中使用的不同转义字符 -
转义字符 | 含义 |
---|---|
\<newline> | 忽略反斜杠和换行符 |
\\ | 反斜杠 (\) |
\' | 单引号 (') |
\" | 双引号 (”) |
\a | ASCII 贝尔 (BEL) |
\b | ASCII 退格 (BS) |
\f | ASCII 换页符 (FF) |
\n | ASCII 换行符 (LF) |
\r | ASCII 回车符 (CR) |
\t | ASCII 水平制表符 (TAB) |
\v | ASCII 垂直选项卡 (VT) |
\ooo | 具有八进制值的字符 ooo |
\xhh | 十六进制值为 hh 的字符 |
转义字符示例
以下代码显示了上表中列出的转义序列的用法 -
# ignore \
s = 'This string will not include \
backslashes or newline characters.'
print (s)
# escape backslash
s=s = 'The \\character is called backslash'
print (s)
# escape single quote
s='Hello \'Python\''
print (s)
# escape double quote
s="Hello \"Python\""
print (s)
# escape \b to generate ASCII backspace
s='Hel\blo'
print (s)
# ASCII Bell character
s='Hello\a'
print (s)
# newline
s='Hello\nPython'
print (s)
# Horizontal tab
s='Hello\tPython'
print (s)
# form feed
s= "hello\fworld"
print (s)
# Octal notation
s="\101"
print(s)
# Hexadecimal notation
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 Python
hello
world
A
A
The \character is called backslash
Hello 'Python'
Hello "Python"
Helo
Hello
Hello
Python
Hello Python
hello
world
A
A