isdigit('5')的结果为0。???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了isdigit('5')的结果为0。???相关的知识,希望对你有一定的参考价值。
参考技术A '5' 是字符,不是数字,结果为“真”,返回非 0 的值,结果不是0。本回答被提问者采纳为啥 isnumeric isdigit 和 isdecimal False 为 1.5?
【中文标题】为啥 isnumeric isdigit 和 isdecimal False 为 1.5?【英文标题】:why is isnumeric isdigit and isdecimal False for 1.5?为什么 isnumeric isdigit 和 isdecimal False 为 1.5? 【发布时间】:2021-02-21 10:28:32 【问题描述】: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) 来测试这种情况
【问题讨论】:
因为.
不是数字。
因为.
不是数字,不是数字,也不是十进制。
那么对于像 1.5 这样的数字返回 true 的最佳方法是什么?
这取决于您认为“像 1.5 这样的数字”。你会考虑.1
或1.
这样的数字吗? 1E9
呢? inf
和 nan
数字一样吗?
【参考方案1】:
如果所有字符都是数字(0-9)
,则isnumeric()
方法返回True
,否则返回False
。
²
和 ¾
等指数也被视为数值。
-1
和 1.5
是不考虑数值,因为字符串中的所有字符都必须是数字,而 -
和 .
不是。
【讨论】:
【参考方案2】:来自 Programiz “如果字符串中的所有字符都是数字字符,则 isnumeric()
方法返回 True
。如果不是,则返回 False
。”
所以,这个点不是数字。
【讨论】:
以上是关于isdigit('5')的结果为0。???的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError: 'int' object has no attribute 'isdigit'(python下的isdigit函数)
将字符串s='ab34aa243dd78eww89' 处理为 '**34**243**78***89',然后对数字求和,结果为'**7**9**15***17