我想取raw_input并查看是否有任何列表,如果是,打印整个raw_input

时间:2017-06-21 01:59:56

标签: python python-2.7

我有一份早餐选择清单。然后,我问用户早餐他们喜欢什么。如果他们输入的内容在列表中,那么我想打印出用户的答案。我该怎么做呢?

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检查并查看是否至少有一个列表中的单词是在输入中然后打印整个输入,如果是?

3 个答案:

答案 0 :(得分:0)

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

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

答案 2 :(得分: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中,则表明它是一个很棒的早餐。这只是为了给你一个想法。您可以进一步修改它以涵盖其他可能的情况。