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

标签 python variables

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

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",将 [] 视为“[]”

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

最佳答案

在 Python 3 中,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__

关于python - 如何让输入识别其他类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51902830/

相关文章:

python - 将 n 个 3x3 旋转矩阵的数组与 3 个向量的 3d 数组相乘

mysql - 使用MySQL变量通过评分创建分组

php - 替换 Mysql 中的 PHP 变量获取字符串

javascript - javascript 一次调用多个变量

python - 操作后将 pandas 数据帧保存在循环中

python - 如何使用 BeautifulSoup 抓取 YouTube 评论

python - 如何在 Python 中迭代 2 个 DataFrame 并填充一列

python - 自定义 keras 回调和改变变分自动编码器损失函数中正则化项的权重 (beta)

JavaScript 变量定义 : Commas vs. 分号

Magento 在特定 cms 页面中调用客户的名字