首页 > 解决方案 > 确定用户输入的类型的程序

问题描述

我试图制作一个程序来检查用户输入是否是数字(或者它实际上是什么类型)。我觉得我真的很接近得到它,但我不知道我在哪里弄错了。

问题实际上是程序只检测整数。除了语句之外的所有内容都被直接扔到“其他”语句中。我实际上并没有收到错误消息,只是似乎 if 和 elif 不像他们应该的那样工作并且不会捕获它们各自的输入类型。有人可以给我一个解决方案或提示吗?

    num = input("please insert a number:\n")
    val = type(num)
    try:
        val = int(num)
        print("Integer", num)
    except ValueError:    
        pass
        if type(val) == float:
            print("float", num)
        elif type(val) == str:
            print("String", num)
        else:
            print("something else", num)

标签: python-3.x

解决方案


默认情况下,返回的类型input()str。您可以创建自定义函数,在其中检查类型并相应地返回它。

例如:

def check_type(num):
    try:
        val = int(num)
        return "Integer"
    except ValueError:
        pass

    try:
        val = float(num)
        return "Float"
    except ValueError:
        pass

    return "String"


num = input("please insert a number:\n")
print(check_type(num))

印刷:

please insert a number:
2.5
Float

推荐阅读