
Python 转义字符逐个详解
Python 转义字符逐个详解。一次性全面了解所有转义字符的含义及其用法。
-
本人在学习 Python 过程中对转义字符的用法不甚了解,在网上搜索一番过后没有发现一份很全面、详细的解读,于是自己整理了一份,制作不易,还请大家点赞支持一下。
-
文章在格式上可能与本人编辑的 Markdown 文件有所出入,建议各位去下载一份该文章的md文件(free)。

转义字符 |
描述 |
\ (在行尾时) |
续行符 |
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
\a |
响铃 |
\b |
退格(Backspace) |
\0 / \000 |
空字符(NULL) |
\n |
换行 |
\v |
纵向制表符 |
\t |
横向制表符 |
\r |
回车 |
\f |
换页 |
\oyy |
八进制数 yy 代表的字符,例如, \o12 代表换行 |
\xyy |
十六进制数 yy 代表的字符,例如, \x0a 代表换行 |
\other |
其他字符以普通格式输出 |
\ddd |
1到3位八进制数所代表的的任意字符 |
1. \ (在行尾时)- 续行符
-
在每一行代码的最后添加 \ ( 注意反斜杠后不能加空格! ),它可以将一行代码分成多行来写,打印结果仍是一行内容,便于代码的编写和阅读,打印结果仍是一行内容。
a = '<我是第1行的内容>\
<我是第2行的内容>\
<我是第3行的内容>\
<我是第4行的内容>'
print(a) # <我是第1行的内容><我是第2行的内容><我是第3行的内容><我是第4行的内容>
2. \\ - 反斜杠符号
-
用 \\ 在字符串里表示反斜杠。
print("Hello\\World") # Hello\World
3. \' - 单引号
-
用 \' 在字符串里表示单引号。
print("What\'s your name?") # What's your name?
4. \" - 双引号
-
用 \" 在字符串里表示双引号。
print("\"Hello World\"") # "Hello World"
5. 程序员的小快乐——\a
-
该转义字符在实际应用中很少见,往往作为程序员的一个小彩蛋娱乐一下(或者可以在流程控制语句中导出 False时响铃提示?此处挖个坑,日后搞懂了来填坑)。在 Python 的解释器中无法真正响铃,在输出含有 \a 的字符串时,\a 的位置会由一个类似于 ^BELL^ 的标识表示出来。如:
a = 'Hello world!\a'
print(a)
得到的结果是这样的:

-
真正实现响铃操作,则需要 win + R 键,输入 cmd 打开控制台:

输入 Python 进入其解释器模式,然后输入以下代码:
import time
while True:
print("\a")
time.sleep(1) # 每次响铃的间隔时间为1秒
然后连敲两次回车键,就可以听到每秒响一次的系统提示音了,关闭控制台即可退出该程序。
6. \b - 退格
-
\b 相当于用了一次退格键 Backspace 。
print("Hello World\b") # Hello Worl
-
看到这里有人(比如说我)就有疑问了,既然 \b 相当于用了一次退格键 Backspace ,那为什么还要用这个转义字符呢,我直接把要删除的内容删掉不比这来的简单吗。
-
实际在计算机语言当中, Backspace 并不是删除的指令。组成 Backspace 的两个英文单词 back 和space 分别是回去和空间的意思,组合起来就是”往回走一步“,但与方向左键不同, Backspace 在向左移动光标位置的同时,将后面所有的内容都往前移了一个单位,并替换掉原有内容 。当我们在 Python 中输入字符时,如果输入后立即发现错误,使用 Backspace 键进行修改,这其实是使用退格键将后面的空(NULL)前移了一个单位 ,并替换掉当前位置的内容,给输入者以“删除”的假象。(根据个人理解编写,不一定完全正确)
-
那么 \b 有什么实际作用呢?
-
\b 可以连续使用,相当于连续敲 Backspace 键,而在最后一个 \b 后的内容也将替代原有内容,相当于起到替换的作用,而这种方法能够不破坏源代码。
print("Hello World\b\b\b\b\bDevil Ding") # Hello Devil Ding
-
此外用 \b 将特定字符串包裹,可以实现对某特定字符串的查找功能。
import re
a = ['hello','Cat',' cat', 'cat h','CAT','CAt-h','Cat_h']
p = re.compile(
r'\bcat\b', re.I)
print([s
for s in a
if re.search(p, s)]) # ['Cat', ' cat', 'cat h', 'CAT', 'CAt-h']
-
本人暂时就了解到 \b 的以上两种实际作用,欢迎大佬补充!本人在以后的学习中如果有遇到更多关于 \b 的用途,会对本文进行补充。
7. \0 / \000 - 空字符
-
\0 和 \000 乃至 \00 都是表示空字符(前两个更常见一些)。用来补足字符长度,满足某些项目对于等长字符串的需求。它们都表示一个空字符。在运行代码时空字符的位置会由类似上面 \a 的BELL的样式的NULL代替。 \ 后多出三个零的部分正常输出。
print(len("Hello World") ) # 11
print(len("Hello World\0") ) # 12
print("Hello World\000")
print("Hello World\0000") # 结果如下图所示

8. \n - 换行
-
与 \ 相反, \n 是将一行输出为多行。
print("<我是第1行的内容>\n<我是第2行的内容>\n<我是第3行的内容>\n<我是第4行的内容>")

9. \v - 纵向制表符
-
使用 \v ,纵向产生4个空字符,相当于竖着用 Tab 键。
-
暂时没有想到怎么用,未来进行补充。
10. \t - 横向制表符
-
使用 \t ,横向产生4个空字符,相当于用 Tab 键。
print("Hello\n\tWorld")

11. \r - 回车
-
在日常使用 Word 编辑文本时,回车键就是另起一行,从行首开始输入。但在 Python 中,\r 与 \n 的用法却大相径庭。\r (return) 指回到本行行首,\n (new line) 指开启新的一行。因此,要注意在编程语言中的回车与退格,和我们日常工作所理解的用法有很大区别!实例如下:
print("Hello", end="")
print("\r", end="")
print("World!", end="")
print("over\r")
print("\nover")
print("Hello", end="")
print("\n", end="")
print("World", end="")

12. \f - 换页
-
\f 后的内容实现换页打印,一般在调用文档编辑工具的页面实现此效果,直接打印会显示和上述 BELL & NULL 类似的字符效果。
13. \oyy
-
两位八进制数 yy 代表的字符。
14. \xyy
-
十六进制数 yy 代表的字符。与 \oyy 具体表示内容参考下图(先将八进制或十六进制数转化为十进制数再查找对应字符)。如 \o12 & \x0a 都代表换行。

-
需要注意的是:yy 表示两位数,因此 \oyy 无法显示所有的 ASCII 字符。这样就需要用到 \ddd 的方法用哪个八进制表示所有 ASCII 字符。
15. \other
-
其他字符以普通格式输出。
16. \ddd
-
三位八进制数 ddd 代表的 字符。
原字符 r / R
-
在存在转义字符的字符串前输入 r / R ,则转义机制失效,打印包括转义字符的所有内容。
print(r"Hello\\World") # "Hello\\World"
更多推荐
所有评论(0)