我使用内置的isidentifier()函数查找变量名允许的Unicode字符(我知道xid\u start和xid\u continue字符,不需要解释).以下程序与它在不同系统上的结果有一定的不一致性.我对推理很困惑,也很感兴趣.

chars = []

for char in range(0x110000):
    char = chr(char)
    if char.isidentifier() or ('a' + char).isidentifier():
        chars += [char]

print(len(chars))

在PyCharm中运行的程序结果为134415,但在repl.it中运行的程序结果为128770.我的python版本是3.9.7,而repl是3.8.12.我所能找到的所有东西都是isidentifier() documentation,它暗示了Python 3中使用的PEP 3131标准.但我和repl.it都使用相同的主要python版本,只是版本差异很小.查找函数changelog也没有结果.希望你能帮我解决这个问题!

推荐答案

他们使用不同版本的unicode数据

try 添加到脚本

import unicodedata

print(unicodedata.unidata_version)

对我来说,repl.它使用的是版本12.1.0,而我在mac 12.3上的python 3.9.9使用的是版本13.0.0

您链接到的政治公众人物表示,角色取决于DerivedCoreProperties.python使用的unicode版本的txt文件

Version 12.1.0 Version 13.0.0

关于哪些字符具有XID\u Start或XID\u Continue属性的确切说明,可以在Python使用的Unicode数据的DerivedCoreProperties文件中找到


这与unicodedata模块在其docs中所说的相符.

使用python 3.8

此数据库中包含的数据是从UCD版本12.1.0编译而来的.

使用python 3.9

此数据库中包含的数据是从UCD 13.0.0版编译而来的.

Python相关问答推荐

添加包含中具有任何值的其他列的计数的列

Python中使用时区感知日期时间对象进行时间算术的Incredit

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

Pandas 填充条件是另一列

Python在tuple上操作不会通过整个单词匹配

连接两个具有不同标题的收件箱

带条件计算最小值

如何使用html从excel中提取条件格式规则列表?

2D空间中的反旋算法

Python库:可选地支持numpy类型,而不依赖于numpy

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

cv2.matchTemplate函数匹配失败

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

如何在BeautifulSoup/CSS Select 器中处理regex?

裁剪数字.nd数组引发-ValueError:无法将空图像写入JPEG

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

多索引数据帧到标准索引DF

如何关联来自两个Pandas DataFrame列的列表项?