字符串——编码字符串的其他方式

未匹配的标注

到目前为止已经学习了字符串对象的序列操作和特定类型的方法。Python还为编码字符串提供了许多方法,将在随后深入探索。比如,特殊字符能被表示为反斜杠转义序列(Python用\xNN十六进制转义标记法来显示它们,除非它们表示可打印的字符):

>>> S = 'A\nB\tC' # \n 是行尾, \t 是 tab
>>> len(S) # 上面的\n,\t 每个只代表一个字符
5
>>> ord('\n') # \n 在ASCII中是一个二进制值为10的字节
10
>>> S = 'A\0B\0C' # \0, 二进制0字节, 不终止字符串
>>> len(S)
5
>>> S # 不可打印字符被显示为 \xNN 十六进制转义符
'a\x00B\x00C'

Python允许字符串被包裹在引号字符中——它们的作用相同但允许使用转义来嵌入另一种类型的引号(大多数程序员倾向于单引号)。它还允许多行字符串字面量被包裹在三引号(单或双)内——当这个形式被使用时,所有行都被连结到一起,且在换行符出现的地方添加上行尾字符串。这是一个小句法便利,但对在Python脚本中嵌入内容如多行HTML,XML或JSON代码,和临时地编写代码行的占位符特别有用——只需在上下各添加三个引号:

>>> msg = """
aaaaaaaaaaaaa
bbb'''bbbbbbbbbb""bbbbbbb'bbbb
cccccccccccccc
"""
>>> msg
'\naaaaaaaaaaaaa\nbbb\'\'\'bbbbbbbbbb""bbbbbbb\'bbbb\ncccccccccccccc\n'

注:这里嵌入另一种类型的引号似乎不需要转义。嵌入自身才需要。

Python还支持 raw字符串字面量,它关闭了反斜杠转义机制。这种字面量以字母r开始,对像Windows上的目录路径的字符串很有用(比如,r'C:\text\new')。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~