首页 > 解决方案 > 为什么 isnumeric isdigit 和 isdecimal False 为 1.5?

问题描述

lst = ['a: 12', 'b: 1.5', 'c: 13']

for lines in lst:
    entry = lines.split(":")
    category = entry[0]
    amount = entry[1].strip()
    print(amount.isnumeric())

结果为 True,False,对于 isnumeric、isdigit 和 isdecimal,为 True

最终使用 isinstance(float(amount), float) 来测试这种情况

标签: pythonisnumeric

解决方案


如果所有字符都是数字,则该isnumeric()方法返回,否则返回。True(0-9)False

指数,如²¾也被认为是数值。

-1and1.5被视为数值,因为字符串中的所有字符都必须是数字,而 the-和 the.不是。


推荐阅读