2017-06-21 18 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,它會打印出它是一個很棒的早餐。這只是給你一個想法。您可以進一步修改它以涵蓋其他可能的情況。

相關問題