isdigit() isnumeric() isdecimal()
三种方法检测字符串是否只由数字组成
- 语法:str.isdigit() 或 str.isnumeric() 或 str.isdecimal()
- 被检测的字符串必须至少包含有一个字符
- 字符串只包含数字则返回 True 否则返回 False
>>> str = '123'
>>> str.isdigit()
True # 该字符串是纯数字组成的,返回:真
>>>
>>> str = '123ABC'
>>> str.isdigit()
False # 该字符串是由数字 + 字母组成的,返回:假
>>>
区别:str.isdecimal() 函数只对十进制数返回 True
isdigit、isdecimal 和 isnumeric 区别
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字,小数
Error: 无
isnumeric()
True: Unicode 数字,全角数字(双字节),汉字数字
False: 小数,罗马数字
Error: byte数字(单字节)
isdecimal()
True: Unicode数字,全角数字(双字节)
False: 罗马数字,汉字数字,小数
Error: byte数字(单字节)
num = "1" #unicode
num.isdigit() # True
num.isdecimal() # True
num.isnumeric() # True
num = "1" # 全角
num.isdigit() # True
num.isdecimal() # True
num.isnumeric() # True
num = b"1" # byte
num.isdigit() # True
num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'
num = "IV" # 罗马数字
num.isdigit() # False
num.isdecimal() # False
num.isnumeric() # False
num = "四" # 汉字
num.isdigit() # False
num.isdecimal() # False
num.isnumeric() # True