Python - 转义字符



转义字符

转义字符是后跟反斜杠 (\) 的字符。它告诉 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

在正常情况下,两者之间没有区别。但是,当转义字符嵌入到字符串中时,普通字符串实际上会解释转义序列,而原始字符串不会处理转义字符。

在下面的示例中,当打印普通字符串时,将处理转义字符 '\n' 以引入换行符。但是,由于原始字符串运算符 'r' ,转义字符的效果不会根据其含义进行转换。


normal = "Hello\nWorld"
print (normal)

raw = r"Hello\nWorld"
print (raw)

在运行上述代码时,它将打印以下结果 -

Hello
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