数字类型 | 函数 | 能否判别 |
---|---|---|
unicode(半角) | isdigit() isnumeric() isdecimal() | True True True |
全角数字 | isdigit() isnumeric() isdecimal() | True True True |
bytes数字 | isdigit() isnumeric() isdecimal() | True False False |
阿拉伯数字 | isdigit() isnumeric() isdecimal() | False True False |
汉字数字 | isdigit() isnumeric() isdecimal() | False True False |
unicode(=半角数字)
>>> num = '123'
>>> num.isdigit()
True
>>> num.isnumeric()
True
>>> num.isdecimal()
True
半角与全角数字:
0-9对应Unicode编码范围:半角——’\u0030’ 到 ‘\u0039’ 全角——’\uff10’到’\uff19’
全角数字(双字节)
>>> num = '\uff10'
>>> num.isdigit()
True
>>> num.isnumeric()
True
>>> num.isdecimal()
True
bytes数字
>>> num = b'6'
>>> num.isdigit()
True
>>> num.isnumeric()
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
num.isnumeric()
AttributeError: 'bytes' object has no attribute 'isnumeric'
>>> num.isdecimal()
Traceback (most recent call last):
File "<pyshell#53>", line 1, in <module>
num.isdecimal()
AttributeError: 'bytes' object has no attribute 'isdecimal'
阿拉伯数字
>>> num = 'Ⅱ'
>>> num.isdigit()
False
>>> num.isnumeric()
True
>>> num.isdecimal()
False
汉字数字
>>> num = '四'
>>> num.isdigit()
False
>>> num.isnumeric()
True
>>> num.isdecimal()
False