との差が、(もしあれば)何で、文字列にUnicodeと作業を必要としませんあなたがunicodedata.numeric
を使用して数値にそのシンボルに変換できることに注意してください:
>>> unicodedata.numeric('㒃')
2.0
およびisalpha
bytes
クラスのメソッドでは、ASCII文字の結果が返されますが、その時点でbytes
には、ユニコードのisnumeric
メソッドがありません。あなた自身を7ビットのASCIIに制限すると、isdigit
はisalnum() and not isalpha()
に相当します。
簡単なfor
ループを持つすべての違いを見つけることができます。
>>> for i in range(0x110000):
... c = chr(i)
... num1 = c.isnumeric()
... num2 = c.isalnum() and not c.isalpha()
... if num1^num2:
... print('Difference:', c, '(', i, ')', num1, num2)
...
Difference: 㐅 (13317) True False
Difference: 㒃 (13443) True False
Difference: 㠪 (14378) True False
Difference: 㭍 (15181) True False
Difference: 一 (19968) True False
Difference: 七 (19971) True False
Difference: 万 (19975) True False
Difference: 三 (19977) True False
Difference: 九 (20061) True False
Difference: 二 (20108) True False
# ... more ...
は、あなたが行ごとに異なる結果を与える文字列を持っていますか? – Alden