Как получить значение переменной, введенное из пользовательского ввода?

Я пытаюсь создать базовое меню, которое проверяет, соответствует ли введенная переменная определенной переменной. Если переменная определена, получите данные определенной переменной.

пример.

Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
  • Я набираю Item1
  • Choose_Item должна быть равна "bill"

3 ответов


Это похоже на то, что вы ищете:

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',
}

... и тогда значение, которое вы хотите items[Choose_Item].