无法获得用户输入的数据类型

时间:2018-03-12 10:31:47

标签: python python-2.7 try-except

我正在尝试获取用户输入的数据类型,但我遇到了一些代码问题。我尝试使用以下代码:

def user_input_type():

    try:
        user_input = int(raw_input("Enter set of characters or digit"))
    except:
        try:
            user_input = str(user_input)
        except Exception as e:
            print e
        return type(user_input)

    return type(user_input)

print user_input_type()

但在运行代码之前它给了我2个警告。

  1. 在分配之前可能会引用局部变量user_input
  2. 过于宽泛的异常子句,例如未指定异常类或指定为Exception
  3. 在输入数字后运行代码后,它给出了正确的值,但是当我输入字符时,它给出了一个错误:

      

    UnboundLocalError:赋值前引用的局部变量'user_input'

    请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要在try-catch

之外设置'user_input'

例如:

def user_input_type():
    user_input = raw_input("Enter set of characters or digit")  #---->Outside try-except
    try:
        user_input = int(user_input)
    except:
        try:
            user_input = str(user_input)
        except Exception as e:
            print e

    return type(user_input)

print user_input_type()