关于Python的转义字符,精华都在这里

Python 中,我们有些特殊符号需要表示出来的时候我们就需要转义字符了!
先举个例子:

>>> print('/')
/

我们要打印一个 “斜杠”,很简单吧!
但是你打印个 “反斜杠” 试试呢!

>>> print('\')
	  
SyntaxError: EOL while scanning string literal

哎呀!报错啦!
这是为什么呢?
原因在于,Python 中 “反斜杠” 即 “ \ ” 就是用来转意的,叫做 “转义字符”!
大家可以这么理解,原来这个单引号,并不会显示出来,而是有专门的意义:表示引号内部的内容,都是字符串!(画外音:我不是单引号,我是表示字符串的工具)
转义字符的作用,就是把后面这半个单引号的这个功能去除,转到原本的状态!(画外音:我变回单引号了)
看例子:
我们如果想要直接打印个单引号出来,那我用单引号把单引号框起来,是不行滴!

print(''')

那我用上转义字符即可:

>>> print('\'')
	  
'

这样第二个单引号就回归了原本!

总结

符号 作用
\\ 把反斜杠的“转义字符”作用去除,即变为真正的反斜杠。显示( \ )
\’ 把单引号的“表示字符串”作用去除。显示( ’ )
\" 把双引号的“表示字符串”作用去除。显示( " )
\a 把 a 转成“响铃”(BEL)
\b 把 b 转成“退格符”(BS)
\n 把 n 转成“换行符”(LF)
\t 把 t 转成“水平制表符”(TAB)
\v 把 v 转成“垂直制表符”(VT)
\r 把 r 转成“回车符”(CR)
\f 把 f 转成“换页符”(FF)
\0dd 把 dd 转成“八进制”对应的ASCII码
\xhh 把 hh 转成“十六进制”对应的ASCII码

前面三个就不用赘述了。
“响铃” 那个其实一直没搞清楚是做什么用的,据说是让主板上的蜂鸣器响,就象开机时的声音,但是这有啥用呢?知道的朋友欢迎留言交流啊!

接下来的 “退格符” 是非常坑爹的东西,你如果直接在 IDLE 中尝试,你会发现:

>>> print('aa\bkk')
aakk

???这玩意儿没用啊!怎么回事?
原来在 IDLE 中是显示不出来 “退格符” 的,具体原因未知!又知道的朋友欢迎分享!

我是MAC系统,所以在终端中启动Python才行:

# 首先打开终端,输入 python3.7
# 然后就进入了 Python 的界面
>>> print('aa\bkk')
akk

终于看到 “退格符” 的效果了,内牛满面!

下面几个就很简单了,直接演示案例:

>>> print('1\n2')
1
2
>>> print('1\t2')
1	2
>>> print('1\v2')
1

2
>>> print('1\r2')
1

2
>>> print('1\f2')
1

2

由于在 IDLE 中,垂直制表符,回车符,换页符看起来是一样的。


后面的转码会比较复杂,但实际使用中感觉也不是很常用。

dd 表示八进制数字,hh 表示十六进制数字。

ASCII 编码共收录了 128 个字符,\0和\x后面最多只能跟两位数字,所以八进制形式,也即是\0并不能表示所有的 ASCII 字符,只有十六进制形式,也就是\x才能表示所有 ASCII 字符。

  • 这里还需要注意 Python 转义字符只对 ASCII 编码有效!对Unicode、GBK、Big5 等其它编码(字符集)没有对应功能。

来看具体案例吧:
字符 1、2、3、x、y、z 对应的 ASCII 码的八进制形式分别是 61、62、63、170、171、172,十六进制形式分别是 31、32、33、78、79、7A。

>>> print('八进制:\061\062\063')
八进制:123
>>> print('十六进制:\x31\x32\x33\x78\x79\x7A')
十六进制:123xyz

转义字符的实际应用大家有用过哪些?欢迎留言讨论!

发布了44 篇原创文章 · 获赞 0 · 访问量 1720

猜你喜欢

转载自blog.csdn.net/qq_42067550/article/details/105133699