关键词

Python转义字符详解

在《Python字符串类型》一节中我们曾提到过转义字符,就是那些以反斜杠\开头的字符。

什么是转义字符?

转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。

ASCII编码为每个字符都分配了唯一的编号,称为编码值。在 Python中,一个ASCII字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。

转义字符以\0或者\x开头,以\0开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值,Python 中的转义字符只能使用八进制或者十六进制。具体格式如下:

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

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

我们一直在说 ASCII 编码,没有提及 Unicode、GBK、Big5 等其它编码(字符集),是因为 Python 转义字符只对 ASCII 编码(128 个字符)有效,超出范围的行为是不确定的。

字符 1、2、3、x、y、z 对应的 ASCII 码的八进制形式分别是 61、62、63、170、171、172,十六进制形式分别是 31、32、33、78、79、7A。下面的例子演示了转义字符的用法:

运行结果:

注意,使用八进制形式的转义字符没法表示 xyz,因为它们的编码值转换成八进制以后有三位。

对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下。

转义字符 字 符 值 输 出 结 果
\' 一个单撇号(') 输出单撇号字符'
\" 一个双撇号(") 输出双撇号字符"
\? 一个问号(?) 输出问号字符?
\ 一个反斜杠(\) 输出反斜杠字符\
\a 警告(alert) 产生声音或视觉信号
\b 退格(backspace) 将光标当前位置后退一个字符
\f 换页(from feed) 将光标当前位置移到下一页的开头
\n 换行 将光标当前位置移到下一行的开头
\r 回车(carriagereturn) 将光标当前位置移到本行的开头
\t 水平制表符 将光标当前位置移到下一个Tab位置
\v 垂直制表符 将光标当前位置移到下一个垂直表对齐点
\o、\oo、\ooo其中o表示一个八进制数字 与该八进制码对应的ASCII字符 与该八进制码对应的字符
\xh[h...]其中h代表一个十六进制数字 与该十六进制码对应的ASCII字符 与该十六进制码对应的字符

本文链接:http://task.lmcjl.com/news/14822.html

展开阅读全文