Python 转义字符

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程