栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么在字符串中的数字前面加反斜杠会变成“ x0n”?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在字符串中的数字前面加反斜杠会变成“ x0n”?

在Python字符串文字中,

字符开始转义序列。
n
转换为换行符,
t
制表符等。
xhh
十六进制序列使您可以生成具有十六进制值的
uhhhh
代码点,生成具有4位十六进制值的
Uhhhhhhhh
代码点,并生成具有8位十六进制值的代码点。

请参阅 字符串和字节文字
文档
,其中包含所有可能的转义序列的表。

当Python在解释器中回显字符串对象(或在字符串对象上使用该

repr()
函数)时,Python将创建字符串值的
表示形式 。该表示恰好使用了完全相同的Python字符串文字语法,从而可以更轻松地调试值,因为您可以使用该表示来 重新创建 完全相同的值。

为了防止不可打印的字符造成破坏或根本不显示,Python使用相同的转义序列语法表示这些字符。因此,无法打印的字节使用适当的

xhh
序列表示,或者,如果可能,使用
c
单个字母转义符之一表示(因此,换行符显示为
n
)。

在您的示例中,您使用

ooo
八进制值
转义序列语法创建了不可打印的字节。将数字解释为八进制数字以创建相应的代码点。回显该字符串值时,将使用默认
xhh
语法以十六进制表示完全相同的值:

>>> '20' # Octal for 16'x10'

当您

t
成为 制表 符时:

>>> print('test')    est

注意那里没有字母

t
。取而代之的是,其余
est
部分由空白(水平制表符)缩进。

如果需要包含 文字

反斜杠字符,则需要将该字符 加倍

>>> '\test\1\2\3''\test\1\2\3'>>> print('\test\1\2\3')test123>>> len('\test\1\2\3')11

请注意,该表示形式 使用双反斜杠
!如果没有,您将无法复制字符串并将其粘贴回Python以重新创建值。使用

print()
值作为实际字符(而不是字符串表示形式)将值写入终端表明那里只有一个反斜杠,而取其长度表明我们在字符串中只有11个字符,而不是15个字符。

您也可以使用 原始
字符串文字。那只是一种不同的语法,从该语法创建的字符串对象是完全相同的类型,具有相同的值。这只是拼写字符串值的另一种方式。在原始字符串文字中,反斜杠只是反斜杠,只要它们不是字符串中的最后一个字符;反斜杠就是反斜杠。大多数转义序列不适用于原始字符串文字:

>>> r'test123''\test\1\2\3'

最后但并非最不重要的一点是,如果要在Windows系统上创建表示文件名的字符串,则也可以使用
斜杠;Window中的大多数API都不介意并接受两种类型的斜杠作为文件名中的分隔符:

>>> 'C:/This/is/a/valid/path''C:/This/is/a/valid/path'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号