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

时间:2013-03-01 23:42:00

标签: python python-3.x

我正在尝试创建一个基本菜单,检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。

实施例

Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
  • 我输入Item1
  • Choose_Item应该等于"bill"

3 个答案:

答案 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]