数字类型 | 函数 | 能否判别 |
---|---|---|
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()) # True
print(num.isnumeric()) # True
print(num.isdecimal()) # True
半角与全角数字:
0-9对应Unicode编码范围:半角——’\u0030’ 到 ‘\u0039’ 全角——’\uff10’到’\uff19’
全角数字(双字节)
num = '\uff10'
print(num.isdigit()) # True
print(num.isnumeric()) # True
print(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()) # False
print(num.isnumeric()) # True
print(num.isdecimal()) # False
汉字数字
num = '四'
print(num.isdigit()) # False
print(num.isnumeric()) # True
print(num.isdecimal()) # False