首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让输入识别其他类型的变量?

如何让输入识别其他类型的变量?
EN

Stack Overflow用户
提问于 2018-08-18 05:02:33
回答 1查看 45关注 0票数 1

这是一个我想写下来的非常快速的程序。

var = input ("Insert A Variable: ")

#Integer
if isinstance(var, int):
    VarType = "Integer"

#String
if isinstance(var, str):
    VarType = "String"

#List
if isinstance(var, list):
    VarType = "List"

#IDictionary
if isinstance(var, dict):
    VarType = "Dictionary"

print ("Variable Type: " + VarType + ".")

但是,每个输入都返回String值,将12视为"12",将[]视为"[]",依此类推。

有什么想法吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-18 05:05:51

在Python3中,input()总是返回一个字符串。您可以使用ast.literal_eval()来安全地评估用户输入,使用type()来确定类型:

>>> import ast
>>> var = ast.literal_eval(input())
{}
>>> type(var)
<class 'dict'>

或者像Jon Clements建议的那样,完全处理错误的输入:

def get_type(prompt=''):
    text = input(prompt)
    try:
        T = type(ast.literal_eval(text))
    except (ValueError, SyntaxError):
        T = str
    return T.__name__
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51902830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档