2026-02-02 21:51:25 淘宝世界杯
是一个例子通过在引号前增加一个反斜杠的方式,在字符串内部嵌入一个引号。这代表了字符串中的一种通用模式:反斜杠用来引入特殊的字符编码,称为转义序列。
转义序列能够让我们在字符串中嵌入不容易通过键盘输入的字符。字符\以及字符串字面量中在在它后边的一个或多个字符,在生成的字符串对象中会被单个字符所代替。这个字符拥有用过转义序列定义的二进制值。
这里是一个无辜字符的字符串,其中嵌入了一个换行符和一个制表符。
其中两个字符\n表示单个字符,在字符串中换行字符的二进制值,类似的,序列\t替换为制表符。
我们可以查看一下这个字符串的长度,为4,一个ASCII a字符,一个换行字符,一个制表符,一个ASCII b字符。
Python提供了一套转义字符序列
转义 意义
\newline 被省略(行的延续)
\\ 反斜杠(保留一个\)
\' 单引号(保留一个')
\" 双引号(保留一个")
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\xhh 十六进制值 hh的字符(准确为2个数位)
\ooo 八进制 ooo 的字符(可达3个数位)
\0 空字符:二进制的0字符(表示字符串结尾)
\N{ id } Unicode数据库ID
\uhhhh 16位十六进制的Unicode字符
\Uhhhhhhhh 32位十六进制的Unicode字符
\other 不转义(保留\和other)
一些转义序列运行在字符串的字符之间嵌入绝对二进制数字。
这里嵌入了两个值为二进制0的字符。
在Python中,这样的零(空)字符不会像C语言空字节那样去结束一个字符串。Python在内存中保存整个字符串的长度和文本。事实上,Python中没有任何字符会结束一个字符串。下面是一个完全由绝对二进制字符组成的字符串
注意,不管任何指定不可打印字符,Python都以16进制显示,我们可以自由地组合绝对数值转义和更多的符号转义类型。
当在Python中处理二进制数据文件时,了解这些知识显得格外重要。由于他们的内容在脚本中是以字符串的形式出现的,因此处理包含各种二进制字节值的二进制文件也是完全可行的。,当使用二进制模式打开时,文件对象从外部文件返回原始字符串。
关于最后一条,\other保留\和other。如果Python认为\后的字符不是有效的转义编码,那么它会直接在生成的字符串中保留反斜杠。
然而,除非你能够记住所有的转义序列,否则你不应该依赖于这种方式。如果你想玩在字符串中明确的编写\,应该使用\\,或者使用原始字符串。