Python 中的转义序列同时支持十六进制(如 '\xab'
)和八进制(如 \12
)值。有没有办法将 ASCII 码指定为十进制值(可能像 \n99
)?我搜索了一下,但很惊讶什么也没找到。
最佳答案
您要查找的内容在 Python 中不存在。
数字转义码通常为十六进制(或较少见的八进制),因为这是其预期用途的明显选择。 来自 Python 语言引用 中的表格,2.4.1. String and Bytes literals :
Notes:
[...]
3. In a bytes literal, hexadecimal and octal escapes denote the byte with the given value. In a string literal, these escapes denote a Unicode character with the given value.
(强调已添加。 感谢 Evert 在 comment 中提供链接.)
要表示一个字节,您必须准确指定 8 位。 每个十六进制数字 4 位,这需要 正好 两个十六进制数字。 将 8 位与 2 位十六进制数字相互转换比将相同的 8 位与两点十进制数字相互转换要容易得多 --- 无需在头脑中乘(或除)16。
要表示一个 Unicode 字符,您必须在 Unicode 代码空间 中指定一个代码点,即 defined作为“从 0 到 10FFFF16 的整数范围”。
由于这些以十六进制正式表示(U+0020
、U+FFFE
等),因此十六进制转义码是唯一合理的选择——它们几乎不需要任何努力完全没有。
关于python - 使用十进制 ASCII 值转义字符串中的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42883401/