在《Python字符串》一节中我们曾提到过转义字符,就是那些以反斜杠 \ 开头的字符。 ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的
\
开头的字符。ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。
如果你对 ASCII 编码不了解,请猛击:
- ASCII 编码,将英文存储到计算机
- ASCII 码一览表,ASCII 码对照表(完整版)
转义字符以
\0
或者\x
开头,以\0
开头表示后跟八进制形式的编码值,以\x
开头表示后跟十六进制形式的编码值,Python 中的转义字符只能使用八进制或者十六进制。具体格式如下:
\0dd
\xhh
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。下面的例子演示了转义字符的用法:
str1 = "Oct: \061\062\063" str2 = "Hex: \x31\x32\x33\x78\x79\x7A" print(str1) print(str2)运行结果:
Oct: 123
Hex: 123xyz
对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下。
转义字符在书写形式上由多个字符组成,但 Python 将它们看作是一个整体,表示一个字符。
Python 转义字符综合示例:
#使用\t排版 str1 = '网站\t\t域名\t\t\t年龄\t\t价值' str2 = 'C语言中文网\tc.biancheng.net\t\t8\t\t500W' str3 = '百度\t\twww.baidu.com\t\t20\t\t500000W' print(str1) print(str2) print(str3) print("--------------------") # \n在输出时换行,\在书写字符串时换行 info = "Python教程:http://c.biancheng.net/python/\n\ C++教程:http://c.biancheng.net/cplus/\n\ Linux教程:http://c.biancheng.net/linux_tutorial/" print(info)运行结果:
网站 域名 年龄 价值 C语言中文网 c.biancheng.net 8 500W 百度 www.baidu.com 20 500000W -------------------- Python教程:http://c.biancheng.net/python/ C++教程:http://c.biancheng.net/cplus/ Linux教程:http://c.biancheng.net/linux_tutorial/