识别输入的数据类型

Ape*_*ses 5 python types user-input python-3.x python-3.2

嗨,我正在尝试打印用户输入的数据类型,并生成如下表:

ABCDEFGH = String,1.09 = float,0 = int,true = bool

等我正在使用python 3.2.3并且我知道我可以使用type()来获取数据类型但是在python中所有用户输入都被视为字符串而我不知道如何确定输入是否是字符串或布尔或整数或浮点数.这是代码的一部分:

user_var = input("Please enter something: ")
print("you entered " + user_var)
print(type(user_var))
Run Code Online (Sandbox Code Playgroud)

总是为字符串返回str.感谢任何帮助

the*_*eye 9

from ast import literal_eval

def get_type(input_data):
    try:
        return type(literal_eval(input_data))
    except (ValueError, SyntaxError):
        # A string, so return str
        return str

print(get_type("1"))        # <class 'int'>
print(get_type("1.2354"))   # <class 'float'>
print(get_type("True"))     # <class 'bool'>
print(get_type("abcd"))     # <class 'str'>
Run Code Online (Sandbox Code Playgroud)