如何使用if语句判断Python中的字符串是整数还是浮点数?

51 浏览
0 Comments

如何使用if语句判断Python中的字符串是整数还是浮点数?

这个问题已经在这里有答案:

如何检查一个字符串是否表示数字(float或int)?

我得到了不同的字符串,有些是数字,例如:“1”,“afd76”,“dddd”,“521129”和“0.1423105”。在继续之前,我需要检查它们是否是有效的数字。在上面的例子中,除了“afd76”和“dddd”之外,其他所有内容都是数字。

isdigit和isnumeric不行,因为它们只能验证字符串是否为int,例如:

"3".isdigit() is true but "3.0".isdigit() is false
"3".isnumeric() is true but "3.0".isnumeric() is false 

是否有任何优雅的方法来进行此检查,而不是强制转换并根据异常决定该怎么做?

admin 更改状态以发布 2023年5月22日
0
0 Comments

你可以尝试将字符串转换为浮点数:

def is_number(num):
    try:
        float(num)
        return True
    except ValueError:
        return False

例子:

>>> is_number('123')
True
>>> is_number('123a')
False
>>> is_number('123.12')
True
>>> is_number('3.0')
True

0