这是我写下来的一个非常快速的程序。
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"
,将[]
视为"[]"
,等等。
有什么想法吗?预先感谢!
答案 0 :(得分:3)
在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__