python - 为什么 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) 来测试这种情况
解决方案
如果所有字符都是数字,则该isnumeric()
方法返回,否则返回。True
(0-9)
False
指数,如²
和¾
也被认为是数值。
-1
and1.5
不被视为数值,因为字符串中的所有字符都必须是数字,而 the-
和 the.
不是。
推荐阅读
- python - 规范化特殊字符字体
- android - 通知自定义声音和振动不起作用?
- python - ValueError: 维度必须相等,但对于 'softmax_cross_entropy_with_logits_sg 是 2 和 3799
- html - 使用 HTML 从远程服务器播放视频
- json - $.each 只显示最后一个元素
- proxy - 调试在 package.json 中使用代理的 API 调用
- c - 使用 WinHTTP 传输不带标头的数据
- swift - 如何更改集合视图中的 UIbutton?
- python - 如何使函数的返回值可迭代?
- laravel - Laravel 资源丰富的路线顺序 - 重要吗?