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 rea = ['hello','Cat',' cat', 'cat h','CAT','CAt-h','Cat_h']
p = re.compile(r'\bcat\b', re.I)
print([sfor s in aif 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"
Python 转义字符逐个详解相关推荐
- python re库 详解(正则表达式)
python re库 详解(正则表达式) 说明 则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式.最主要应用在字符串匹配中. 1).re ...
- python map函数详解
python map函数详解 python中有些内置的高阶函数,如map(),filter(),reduce():之所以称其为高阶函数,因为这类函数接受的参数中有一个参数为函数对象. map()函数格 ...
- python20191031_20191031:Python取反运算详解
20191031:Python取反运算详解 取反运算:~3 == 4 1.对于数字 3 =======>转换为二进制表示为011 2.对011取反为100 3.为什么表示-4 a.计算机用补码表 ...
- Python字符编码详解
Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...
- python的执行过程_在交互式环境中执行Python程序过程详解
前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...
- windows上安装Anaconda和python的教程详解
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- python变量类型-Python 变量类型详解
变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...
- python安装教程windows-windows上安装Anaconda和python的教程详解
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- python语言编程基础-Python语言入门详解!快速学成Python!
原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...
最新文章
- 从1到n整数中1出现的次数
- 新概念0817:终身学习
- IMP出现的ORA-01401错误可能和字符集有关(转载)
- java判断题_【Java判断题】请大神们进来看下、这些判断题你都知道多少~
- Java-Hashmap
- python飞机大战跟随鼠标移动_用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动...
- java+读取source资源_如何从JavaJAR文件中读取资源文件?
- C++Primer第四版 阅读笔记 第二部分 “容器和算法”
- DNS在企业网络中的应用(一)
- Oracle RAC系列之:ASM基本操作维护
- 02277微型计算机原理及应用,微型计算机原理及应用(课程代码:02277).doc
- MODIS数据下载、拼接、裁剪、8天合成月方法以及处理过程中遇到的问题及解决办法(简要整理)
- 三次样条曲线拟合算法c语言,关于三次样条曲线拟合法
- 计算机考试67,注册电气工程师基础考试计算机基础知识试题答案(67)
- 联想笔记本如何解开隐藏bios(insydeh 20)
- Oracle ERP 仓库(inventory) 词汇
- win10计算机系统优化设置,win10系统电脑如何进行系统优化
- 做android移动开发的一点体会
- 参考文献中期刊/会议如何缩写
- python 习题练习一
热门文章
- 短链服务和应用场景介绍-初级入门(一) 连载持续更新中
- 抖音吸粉_抖音吸粉点赞的句子(精选50句)
- 3dMax 阵列(花坛与树)
- 【剑桥摄影协会】手持拍照的相机抖动改善
- 【Elasticsearch】ES查询不等于的实现方式比较 must_not NOT 不等于
- [C++11] auto关键字详解
- 苹果吃鸡蓝牙耳机推荐什么牌子好?2022性价比高的蓝牙耳机推荐
- 在DeepinOS下运行《最终幻想14》网游
- 微信邮件怎么设置自动回复,你了解吗?
- python 矩阵类型转换_python矩阵中float转int