Python 转义字符
In 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 | \<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