如何获取用户输入的变量值?

10 投票
3 回答
67010 浏览
提问于 2025-04-17 17:39

我想做一个简单的菜单,检查输入的变量是否和一个已经定义好的变量匹配。如果这个变量是定义过的,就获取这个定义变量的数据。

举个例子。

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")

撰写回答