Python 转义字符



转义字符

转义字符是由反斜杠 ( \ ) 后跟一个字符组成的字符。它告诉解释器 此转义字符(序列)具有特殊含义。例如,\n 是一个表示换行的转义序列。当 Python 在字符串中遇到此序列时,它会理解需要换行。

除非存在 "r" 或 "R" 前缀,否则字符串和字节字面量中的转义序列将根据与标准 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 中使用的不同转义字符:

序号 转义序列及含义
1

\<newline>

反斜杠和换行符被忽略

2

\\

反斜杠 (\)

3

\'

单引号 (')

4

\"

双引号 (")

5

\a

ASCII 响铃 (BEL)

6

\b

ASCII 退格 (BS)

7

\f

ASCII 换页 (FF)

8

\n

ASCII 换行 (LF)

9

\r

ASCII 回车 (CR)

10

\t

ASCII 水平制表符 (TAB)

11

\v

ASCII 垂直制表符 (VT)

12

\ooo

具有八进制值 ooo 的字符

13

\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
广告