| 数字类型 | 函数 | 能否判别 |
|---|---|---|
| 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'print(num.isdigit()) # Trueprint(num.isnumeric()) # Trueprint(num.isdecimal()) # True
半角与全角数字:
0-9对应Unicode编码范围:半角——’\u0030’ 到 ‘\u0039’ 全角——’\uff10’到’\uff19’
全角数字(双字节)
num = '\uff10'print(num.isdigit()) # Trueprint(num.isnumeric()) # Trueprint(num.isdecimal()) # True
bytes数字
num = b'6'print(num.isdigit()) # True# print(num.isnumeric()) # 取消注释可查看错误# AttributeError: 'bytes' object has no attribute 'isnumeric'# print(num.isdecimal()) # 取消注释可查看错误# AttributeError: 'bytes' object has no attribute 'isdecimal'
阿拉伯数字
num = 'Ⅱ'print(num.isdigit()) # Falseprint(num.isnumeric()) # Trueprint(num.isdecimal()) # False
汉字数字
num = '四'print(num.isdigit()) # Falseprint(num.isnumeric()) # Trueprint(num.isdecimal()) # False
