字符串中使用十进制ASCII值的转义序列?

3

Python中的转义序列支持十六进制(例如'\xab')和八进制(例如\12)值。是否有一种方法可以将ASCII码指定为十进制值(可能类似于\n99)?我搜索了一下,但惊讶地发现没有相关资料。


1
根据转义码的官方文档部分,我认为不是。 - user707650
不使用转义代码,但 chr 可能会有用。 - busybear
如果你在寻找不存在的东西,那么找不到也就不足为奇了。 - Barmar
@Barmar,我只是想知道如果缺少自然扩展到小数的扩展是否是按设计方式进行的,是否有其他快捷方式。 - Thomson
@Thomson 我想不到有任何一种语言提供十进制转义序列。许多只有八进制,有些也有十六进制。 - Barmar
1个回答

2

在Python中,您要查找的内容不存在。

数字转义码通常是十六进制(或不太常见的八进制),因为这是它们预期用途的明显选择。 从Python语言参考表中,2.4.1.字符串和字节文字

注:
[...]
3. 在字节文字中,十六进制和八进制转义表示具有给定值的字节。在字符串文字中,这些转义符号表示具有给定值的Unicode字符

(强调添加。 感谢Evert在评论中提供链接。)

要表示一个字节,必须精确指定8位。 每个十六进制数字4位,这需要恰好两个十六进制数字。 将8位转换为2个十六进制数字并返回比将这些8位转换为两点几个十进制数字来回转换要容易得多 - 您无需在脑海中乘以(或除以)16。

要表示一个Unicode字符,必须指定Unicode 代码空间中的代码点,该代码空间被定义为“从0到10FFFF16的一系列整数”。 由于它们以十六进制表示(U+0020U+FFFE等),因此十六进制转义码是唯一合理的选择 - 它们根本不需要任何努力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接