Python - 转义字符


在Python中,如果字符串在引号之前带有“r”或“R”前缀,则该字符串成为原始字符串。因此 'Hello' 是一个普通字符串,而 r'Hello' 是一个原始字符串。

>>> normal="Hello"
>>> print (normal)
Hello
>>> raw=r"Hello"
>>> print (raw)
Hello

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

>>> normal="Hello\nWorld"
>>> print (normal)
Hello
World
>>> raw=r"Hello\nWorld"
>>> print (raw)
Hello\nWorld

在上面的示例中,当打印普通字符串时,会处理转义字符“\n”以引入换行符。但是,由于原始字符串运算符“r”,转义字符的效果不会按照其含义进行翻译。

换行符 \n 是 Python 识别的转义序列之一。转义序列调用“\”的替代实现字符子序列。在Python中,“\”用作转义字符。下表显示了转义序列的列表。

除非存在“r”或“R”前缀,否则字符串和字节文字中的转义序列将根据与标准 C 使用的规则类似的规则进行解释。可识别的转义序列为 -

先生编号 转义序列和含义
1

\<换行符>

反斜杠和换行符被忽略

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 的字符

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