首页 > 解决方案 > Python 3.9 检查输入是 INT 还是 FLOAT

问题描述

我正在逐步学习 Python,使用 3.9 版本。

我想检查 input() 是 INT 还是 FLOAT,我有以下脚本,但无论我输入第一个 IF 总是运行。

i = input("Please enter a value: ")


if not isinstance(i, int) or not isinstance(i, float):
    print("THis is NOT an Integer or FLOAT")

elif isinstance(i, int) or isinstance(i, float):
    print("THis is an Integer or FLOAT")

有人可以解释一下我做错了什么吗

标签: pythonpython-3.x

解决方案


你可以用这样的东西来检查。获取输入并将其转换为浮动,如果它引发值错误,那么它不是float/int。然后使用is_integer()方法float来确定它是int还是float

测试用例

-22.0 -> INT
22.1 -> FLOAT
ab -> STRING
-22 -> INT

代码:

i = input("Please enter a value: ")       
try:
    if float(i).is_integer():
        print("integer")
    else:
        print("float")
except ValueError:
    print("not integer or float")

推荐阅读