0
pie="I like pie"
banana="I like bananas"
cake="I like cake"
die=67
running = True

while running:
    item = eval(input("Select your item:  "))

    if item == "die":
        running = False
    elif item !="die":
        print(item)
    else:
        print("Invalid entry. try again")

我不完全确定如何理解我的要求,但我希望用户能够输入一个输入,然后搜索数百个变量的列表(这里只显示几个),然后显示变量如果它是一个。如果用户输入不是变量,我想要一个错误,重试消息。最后,如果用户输入“die”,则程序终止。

4

2 回答 2

1

你可以这样做:

output_dict = {
    'pie': "I like pie",
    'banana': "I like bananas",
    'cake': "I like cake"
}

item = None
while item != 'die':
    item = raw_input("Select your item:")
    if item != 'die':
        item = output_dict.get(item, None)
        if item:
            print item
        else:
            print("Invalid entry. try again")   
于 2013-11-11T18:34:26.253 回答
0

我认为您想要这样的东西,只需使用 dict 来保存所有变量

my_dict = {'pie':'I like pie',
           'banana' : 'I like banana'
          ...
          }

running = True

while running:
   item = raw_input("select item:")
   if item=='die':
       running = False
   elif item in my_dict:
       print my_dict[item]
   else:
       print "try again"

只是对您的代码的评论,eval(input(...)) 不好,因为输入是 eval(raw_input(..)),如果我在这种情况下不应该使用输入(因为 eval)了解您要做什么,请尝试改用 raw_input 。

希望能帮助到你!

于 2013-11-11T18:27:39.780 回答