MaN*_*KuR 8 python unicode unicode-string python-3.x python-unicode
为什么我们在Python 3中有不同的面向字节的字符串表示?单个表示而不是多个表示是否足够?
对于ASCII范围编号打印,字符串显示以下列开头的序列\x
:
In [56]: chr(128)
Out[56]: '\x80'
Run Code Online (Sandbox Code Playgroud)
在不同的数字范围内,Python使用以.开头的序列 \u
In [57]: chr(57344)
Out[57]: '\ue000'
Run Code Online (Sandbox Code Playgroud)
但是在最高范围内的数字,即截至目前的最大Unicode数,它使用了一个领先的\U
:
In [58]: chr(1114111)
Out[58]: '\U0010ffff'
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 11
Python为您提供字符串的表示,对于不可打印的字符,将使用最短的可用转义序列.
\x80
与\u0080
or 相同的字符\U00000080
,但\x80
只是更短.对于chr(57344)
最短的表示法\ue000
,您不能表达相同的字符\xhh
,表示法只能用于最多的字符\0xFF
.
对于某些角色,甚至还有单字母转义\n
符,例如换行符或\t
制表符.
出于历史和实际原因,Python有多种表示法选项.在一个字节串,你只能在0范围内创建字节- 255,所以\xhh
是有益的,不必使用更简洁\U000hhhhh
无处不在的时候,你甚至不能使用可用于该符号的全范围,\xhh
并\n
与相关的代码是熟悉来自其他语言的程序员.
归档时间: |
|
查看次数: |
4305 次 |
最近记录: |