python怎么判断是不是数字

Python014

python怎么判断是不是数字,第1张

这个比较常用也比较简单

str1 = 'abc1'

str2 = '11'

str3 = '1ac'

print('str1是否为数字:{}'.format(str1.isdigit()))

print('str2是否为数字:{}'.format(str2.isdigit()))

print('str3是否为数字:{}'.format(str3.isdigit()))

希望可以帮助到你。

判定是否为数字方法一:

try:

float(s)

return True

exceptValueError:

pass

try:

importunicodedata

unicodedata.numeric(s)

return True

except (TypeError

, ValueError):

pass

return False

方法二:普通十进制正常处理

对于非十进制还需要更复杂的方法,不过这里不讨论,只讨论普通十进制数的影响。

十进制数格式一般有以下几种(整数、小数、科学计数法):

+123        [符号位][数字]

-123.123    [符号位][小数点][数字]

+123E+123   [整数或小数][E或者D,大小写皆可][整数]

说明:

python输入的内容在内部全部为字符串,所以要判断这个字符串是否为一个数字。大多法内部函数并不能对各种形式的数据做出正确判断,例如isdigit()函数只能判断字符串是否为纯数据组成对于负数则无效了。所以可以使用float()来检测,对各种数字的表示方法都有效果。

方法代码:

#定义函数

def isnub(s):

try:

nb = float(s) #将字符串转换成数字成功则返回True

return True

except ValueError as e:

return False #如果出现异常则返回False

#测试

print(isnub('123'))

print(isnub('abc'))

print(isnub('123.123'))

print(isnub('-123.123'))

print(isnub('-1.609E-19'))

测试结果如下:

True

False

True

True

True