如何检查变量,如果无效则返回错误

时间:2013-11-11 17:51:54

标签: python if-statement eval

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”,则程序终止。

2 个答案:

答案 0 :(得分: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")   

答案 1 :(得分:0)

我认为你想要这样的东西,只需使用一个字典来保存你所有的变量

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(输入(...))不好,因为输入是eval(raw_input(..)),你不应该在这种情况下使用输入(因为eval) )如果我理解你要做什么,请尝试使用raw_input。

希望它有所帮助!