2017-06-21 42 views
-1

我有一个早餐选择列表。然后,我问用户他们喜欢吃早餐。如果他们键入的内容在列表中,那么我想打印出用户的答案。我该怎么做呢?我想采取raw_input,看看它是否在列表中,如果是,打印整个raw_input

def bfast_choices(): 
    choices = ['eggs', 'bacon', 'toast', 'pancakes'] 
    choice = raw_input('> ') 
    if choice in choices: 
     print "%s is a great breakfast" % choice 
    else: 
     print "%s is gross" % choice 

如果用户只输入'鸡蛋'或'培根'或'烤面包'或'煎饼',这将起作用。但是,如果他们输入“鸡蛋和培根”,“牛排和鸡蛋”或“煎饼和华夫饼和咖啡”等,我希望它能够工作。这是否可以让python检查并查看是否至少有一个在列表中的单词是在输入中,然后打印整个输入,如果它是?

+1

当然。将“a,b,z和q'加入你的清单。这是你真正的问题,还是只有示例代码? –

+1

如果有人输入“培根和椒盐脆饼”,该怎么办?看到椒盐卷饼不在列表中,那么预期的产量是多少? – idjaw

+0

我的目的,我希望它打印出“培根和椒盐脆饼是一个伟大的早餐” – daugur

回答

0

我假设用户输入的字符串'a,b,z和q'是你想要的变量'choice',是一个[a,b,z,q]的列表。为此,请查看string.split()和string.strip()命令。

0

您可以使用“如果在列表项”

foodItem= raw_input("Enter choice: ") 

menu=["food1", "food2", "food3"] 

if foodItem in menu: 
    print(foodItem) 

对于食品名单:

foodItems= ["food1", "food2"] 

menu=["food1", "food4", "food3"] 

for item in foodItems: 
if item in menu: 
    print(item+"is available") 

剩下的问题是,让用户输入到一个列表,你可以做到这一点在很多方面。 通常的简便的方法是这样的:

foodItem= raw_input("Enter food(separated by ","): ) 
foodItems=[i for i in foodItem.split(", ")] 
0

如果我理解正确的话,你可以试试这个:

def bfast_choices(): 
    choices = ['eggs', 'bacon', 'toast', 'pancakes'] 
    choice = raw_input('> ') 
    tmp = choice.split(' ') 
    for item in tmp: 
     if item in choices: 
      print "%s is a great breakfast" % choice 
      return 

    print "%s is gross" % choice 


bfast_choices() 

您使用的方法split(' ')。它返回输入中的单词列表。如果输入是eggs and pizza,则列表将是['eggs', 'and', 'pizza']。然后你遍历列表,如果列表中至少有一个项目在列表中choices,它会打印出它是一个很棒的早餐。这只是给你一个想法。您可以进一步修改它以涵盖其他可能的情况。

相关问题