检查字符串是否为实数
有没有什么简单的方法可以快速判断一个字符串是不是一个真正的数字?我不想一个字符一个字符地去检查,也不想用 isdigit()
来判断每个字符。我想测试一下像 0.03001
这样的浮点数。
7 个回答
1
还有一种方法是使用正则表达式:
import re
def is_float(str):
if re.match(r"\d+\.*\d*", str):
return True
else:
return False
8
>>> a = "12345" # good number
>>> int(a)
12345
>>> b = "12345G" # bad number
>>> int(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12345G'
你可以这样做:
def isNumber(s):
try:
int(s)
except ValueError:
return False
return True
如果你想要一个小数,记得把 int
改成 float
(感谢 @cobbal)。
14
如果你说的浮点数是指实际的数字,这段代码应该可以用:
def isfloat(str):
try:
float(str)
except ValueError:
return False
return True
需要注意的是,这段代码内部还是会循环处理你的字符串,但这是没办法避免的。