如何获取用户输入的变量值?
我想做一个简单的菜单,检查输入的变量是否和一个已经定义好的变量匹配。如果这个变量是定义过的,就获取这个定义变量的数据。
举个例子。
Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
- 我输入
Item1
Choose_Item
应该等于"bill"
3 个回答
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)
4
如果你想选择一个变量,而这个变量的名字是用户输入的内容,你需要用 locals()[Choose_Item]
这个方法。
不过,更常见的做法是使用字典:
items = {
'Item1': 'bill',
'Item2': 'cows',
'Item3': 'abcdef',
}
... 然后你想要的值就是 items[Choose_Item]
。
23
这看起来就是你想要的东西:
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")