python - Difference between isdecimal and isdigit -
the python 3 documentation isdigit says
return true if characters in string digits , there @ least 1 character, false otherwise. digits include decimal characters , digits need special handling, such compatibility superscript digits. formally, digit character has property value numeric_type=digit or numeric_type=decimal.
so sounds isdigit should superset of isdecimal. docs isdecimal say
return true if characters in string decimal characters , there @ least 1 character, false otherwise. decimal characters general category “nd”. this category includes digit characters, , characters can used form decimal-radix numbers, e.g. u+0660, arabic-indic digit zero.
that sounds isdecimal should superset of isdigit.
how these methods related? 1 of them match strict superset of other matches? numeric_type property have nd category? (and contradictory documentation documentation bug?)
as found out, correspondence between string predicates checking numeric value , unicode character properties following:
isdecimal: nd, isdigit: no, nd, isnumeric: no, nd, nl, isalnum: no, nd, nl, lu, lt, lo, lm, ll, e.g., ᛰ (runic belgthor symbol, u+16f0) belongs nl, therefore:
'ᛰ'.isdecimal() # false 'ᛰ'.isdigit() # false 'ᛰ'.isnumeric() # true 'ᛰ'.isalnum() # true
Comments
Post a Comment