为什么 Python 3 中有不同的面向字节的字符串表示形式?使用单一表示而不是多个表示还不够吗?
对于打印字符串的 ASCII 范围编号,显示以以下开头的序列\x
:
In [56]: chr(128)
Out[56]: '\x80'
在不同的数字范围内,Python 使用以下开头的序列\u
In [57]: chr(57344)
Out[57]: '\ue000'
但是最高范围内的数字,即目前最大的 Unicode 数字,它使用前导\U
:
In [58]: chr(1114111)
Out[58]: '\U0010ffff'
Python 为您提供了字符串的表示形式,对于不可打印的字符将使用最短的可用转义序列.
\x80
与以下字符相同\u0080
or \U00000080
, but \x80
只是更短了。为了chr(57344)
最短的符号是\ue000
,你不能用以下方式表达相同的字符\xhh
,该表示法只能用于最多的字符\0xFF
.
对于某些字符甚至有单字母转义,例如\n
对于换行符,或者\t
对于一个选项卡。
由于历史和实际原因,Python 有多种表示法选项。在一个字节串您只能创建 0 - 255 范围内的字节,因此\xhh
比必须使用更有帮助且更简洁\U000hhhhh
当您甚至无法使用该表示法可用的全部范围时,到处都是,并且\xhh
and \n
相关代码对于其他语言的程序员来说是熟悉的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)