Python isdigit() 方法检测字符串是否只由数字组成。
isdigit()方法语法:
str.isdigit()
如果字符串只包含数字则返回 True 否则返回 False。
以下实例展示了isdigit()方法的实例:
#!/usr/bin/python3 str = "123456"; print (str.isdigit()) str = "dida100 example....wow!!!" print (str.isdigit())
以上实例输出结果如下:
True False
isdigit() 方法只对正整数有效,负数及小数均返回不正确。
可以使用以下函数来解决:
# 判断是否为数字 def is_number(s): try: # 如果能运⾏ float(s) 语句,返回 True(字符串 s 是浮点数) float(s) return True except ValueError: # ValueError 为 Python 的⼀种标准异常,表⽰"传⼊⽆效的参数" pass # 如果引发了 ValueError 这种异常,不做任何事情(pass:不做任何事情,⼀般⽤做占位语句) try: import unicodedata # 处理 ASCII 码的包 unicodedata.numeric(s) # 把⼀个表⽰数字的字符串转换为浮点数返回的函数 return True except (TypeError, ValueError): pass return False print(is_number(1)) print(is_number(1.0)) print(is_number(0)) print(is_number(-2)) print(is_number(-2.0)) print(is_number("abc"))
输出结果为:
True True True True True False