所以这是我想写下来的一个非常快速的程序。
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/