chr函数不接受更高答案有什么特定原因吗?

时间:2019-08-27 09:26:43

标签: python unicode ascii built-in chr

如果我输入的数字大于1114111,是否有人知道chr函数引发错误的特定原因? EG:

>>> chr(1114111)
'\U0010ffff'
>>> chr(1114112)
  

回溯(最近通话最近):     文件“”,第1行,位于       hr(1114112)   ValueError:chr()arg不在范围内(0x110000)

2 个答案:

答案 0 :(得分:2)

是的,有 个具体原因。这是因为这是Unicode代码空间中的最高代码点。根据当前标准(12.0),1.3 Text handling下的Text elements部分:

  

编码后的字符由010ffff16之间的数字表示,称为代码点。

答案 1 :(得分:1)

数字必须在一定范围内才能有效,所以不,它不会接受大于或等于0x110000的数字,因为那是不在Unicode代码空间中的最小正整数。