chr 函数不接受更高答案有什么具体原因吗?
Is there any specific reason why the chr function won't accept a higher answer?
有人知道如果我输入大于 1114111 的数字,chr
函数会抛出错误的具体原因吗?
例如:
>>> chr(1114111)
'\U0010ffff'
>>> chr(1114112)
Traceback (most recent call last):
File "", line 1, in
chr(1114112)
ValueError: chr() arg not in range(0x110000)
是的,是一个特定的原因。这是因为那是Unicode代码中的最高代码点space。来自当前标准 (12.0),1.3 Text handling
部分,在 Text elements
下:
An encoded character is represented by a number from 0
to 10ffff<sub>16</sub>
, called a code point.
数字需要在一定范围内才能有效,因此不接受大于或等于 0x110000 的数字,因为这是 unicode 代码中不存在的最小正整数 space.
有人知道如果我输入大于 1114111 的数字,chr
函数会抛出错误的具体原因吗?
例如:
>>> chr(1114111)
'\U0010ffff'
>>> chr(1114112)
Traceback (most recent call last): File "", line 1, in chr(1114112) ValueError: chr() arg not in range(0x110000)
是的,是一个特定的原因。这是因为那是Unicode代码中的最高代码点space。来自当前标准 (12.0),1.3 Text handling
部分,在 Text elements
下:
An encoded character is represented by a number from
0
to10ffff<sub>16</sub>
, called a code point.
数字需要在一定范围内才能有效,因此不接受大于或等于 0x110000 的数字,因为这是 unicode 代码中不存在的最小正整数 space.