Python转义字符及用法

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

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

如果你对 ASCII 编码不了解,请猛击:

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

/0dd
/xhh

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。下面的例子演示了转义字符的用法:

str1 = "Oct: /061/062/063"
str2 = "Hex: /x31/x32/x33/x78/x79/x7A"
print(str1)
print(str2)

运行结果:

Oct: 123
Hex: 123xyz

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

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

表 1 Python 支持的转义字符
转义字符 说明
/n 换行符,将光标位置移到下一行开头。
/r 回车符,将光标位置移到本行开头。
/t 水平制表符,也即 Tab 键,一般相当于四个空格。
/a 蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。
/b 退格(Backspace),将光标位置移到前一列。
// 反斜线
/' 单引号
/" 双引号
/ 在字符串行尾的续行符,即一行未完,转到下一行继续写。

转义字符在书写形式上由多个字符组成,但 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/

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/742.html

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论