我使用内置的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也没有结果.希望你能帮我解决这个问题!