我正在尝试创建一个基本菜单,检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。
实施例
Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
Item1
Choose_Item
应该等于"bill"
答案 0 :(得分:20)
这似乎就是你要找的东西:
Choose_Item = eval(input("Select your item: "))
但是,这可能不是最好的策略,因为拼写错误或恶意用户很容易使代码崩溃,系统过载或者做任何其他令人讨厌的事情。对于这种特殊情况,更好的方法可能是
items = {'item1': 'bill', 'item2': 'cows', 'item3': 'abcdef'}
choice = input("Select your item: ")
if choice in items:
the_choice = items[choice]
else:
print("Uh oh, I don't know about that item")
答案 1 :(得分:4)
你可以采取两种方式。糟糕的方式:
print eval(Choose_Item)
更好的方法是使用字典
items = {'1':'bill','2':'cows'}
Choose_Item = input("Select your Item: ")
try:
print( items[Choose_Item] )
except KeyError:
print ('Item %s not found' % Choose_Item )
答案 2 :(得分:4)
如果您想选择名称与用户相同的变量,则需要使用locals()[Choose_Item]
。
更常规的方法是使用字典:
items = {
'Item1': 'bill',
'Item2': 'cows',
'Item3': 'abcdef',
}
...然后你想要的值是items[Choose_Item]
。