Python中判断输入字符串是否为数字的方法

时间:2023-03-09 07:31:25
Python中判断输入字符串是否为数字的方法

在写物理实验图像处理的脚本时,遇到了一个判断输入的字符串是否为数字的方法

最开始我的思路是这个

test = input()
while test.isdigit():
# do something

用的是系统自带的String.isdigit()的方法,该方法用于判定输入的字符串是否为纯数。如果是纯数,则返回True,否则返回False。

但是这样有一个问题,浮点数中有dot这个符号,所以一旦用户输入浮点数,返回值就是False,达不到我要的目标。后来想用最原始的C++中判定ASCII码的方法解决该问题,觉得过于复杂。于是有了下面这个思路,用异常来捕捉。

def isscalar(str):
try:
float(str)
except ValueError:
return False
else:
return True

由于在使用float()(也包括其他数型的转换int、long)转换时,若转换对象不是数字,系统会自动报错

ValueError: could not convert string to float: 'string'

于是利用这一点来实现判定用户输入是否是数字,也算是对异常捕捉的一次学习了。