我正在尝试创建一个基本菜单,用于检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。
例子。
Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
- 我输入
Item1
Choose_Item
应该等于"bill"
我正在尝试创建一个基本菜单,用于检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。
例子。
Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
Item1
Choose_Item
应该等于"bill"
这似乎是您正在寻找的:
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")
有两种方法可以解决这个问题。坏方法:
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)
locals()[Choose_Item]
如果要选择名称是用户生成的变量,则需要使用。
不过,更传统的方法是使用字典:
items = {
'Item1': 'bill',
'Item2': 'cows',
'Item3': 'abcdef',
}
... and then the value you want is items[Choose_Item]
.