Python转义字符¶
转义字符, 就是那些以反斜杠\开头的字符.
ASCII编码为每个字符都分配了唯一的编号, 称为编码值. 在Python中, 一个ASCII字符除了可以用它的实体(也就是真正的字符)表示, 还可以用它的编码值表示. 这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character).
转义字符以\0或者\x开头, 以\0开头表示后跟八进制的编码值, 以\x开头表示后跟十六进制形式的编码值,
Python中的转义字符只能使用八进制或者十六进制. 具体格式如下:
\0dd
\xhh
dd表示八进制数字, hh表示十六进制数字.
ASCII编码共收录了128个字符, \0和\x后面最后只能跟两位数, 所以八进制形式\0并不能表示所有的ASICC字符, 只有十六进制形式\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)
运行结果:
123
123xyz
注意, 使用八进制形式的转义字符没法表示xyz, 因为它们的编码值转换成八进制以后有三位.
对于ASCII编码, 0~31(十进制)范围内的字符为控制字符, 它们都是看不见的, 不能在显示器上显示, 甚至无法从键盘输入, 只能用转义字符的形式来表示. 不过, 直接使用ASCII码记忆不方便, 也不容易理解, 所以, 针对常用的控制字符, C语言定义了简写方式, 完整列表如下:
\n |
换行符, 将光标位置移到下一行开头. |
\r |
回车符, 将光标位置移到本行开头. |
\t |
水平制表符, 也即Tab键, 一般相当于四个空格. |
\a |
蜂鸣器响铃. 注意不是喇叭发声, 现在的计算机很多都不带蜂鸣器了, 所以响铃不一定有效. |
\b |
退格(Backspace), 将光标位置移到前一列 |
\\ |
反斜线 |
\' |
单引号 |
\" |
双引号 |
\ |
在字符串行尾的续行符, 即一行未写完, 转到下一行继续写. |
转义字符在书写上由多个字符组成, 但Python将它们看作是一个整体, 表示一个字符.