从chr
内置函数的Python文档中,chr
接受的最大值是1114111(十进制)或0x10FFFF(基数为16)。事实上
>>> chr(1114112)
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
chr(1114112)
ValueError: chr() arg not in range(0x110000)
我的第一个问题如下,为什么这个数字呢?第二个问题是:如果此数字发生变化,是否可以从Python命令中了解chr
接受的最大值?
答案 0 :(得分:11)
一个整数,给出最大Unicode代码点的值,即
1114111
(十六进制0x10FFFF
)。
在我的Python 2.7 UCS-2版本中,unichr()
支持的最大Unicode字符是0xFFFF:
>>> import sys
>>> sys.maxunicode
65535
但是Python 3.3和更新版本切换到Unicode字符串的新内部存储格式,现在总是 0x10FFFF
。请参阅PEP 393。
0x10FFFF
是Unicode标准中定义的最大Unicode代码点。引用Wikipedia article on Unicode:
Unicode定义了1,114,112个代码点的代码空间,范围为0到10FFFF。