2016-04-07 35 views
2

ile yineleme Kullanıcı girdisini listedeki bazı anahtar kelimelere eşleştirmem gerekiyor.Kullanıcı girdisi ve bir liste

Bunu yapmak için birkaç yol denedim, kullanarak, ister istemez. Numaralandırma bile en iyisi olurdu ama bir araya getirilemez. Kullanıcının hesaba katması gereken birkaç kelime girebilir. Sonunda kod başka bir şeyle ve anahtar kelimelerle ilgili açık dosyalar ile ilgili olacaktır.

örnek kod:

shopping = [ 
    'bananas', 
    'apples', 
    'chocolate', 
    'coffee', 
    'bread', 
    'eggs', 
    'vimto' 
    ] 

need = input ("please input what you need ") 
need = need.lower() 
need = need.split() 
index = 0 
while index < len(shopping): 
    for word in need: 
     if word == shopping[index]: 
      print ("Added to basket") 
      index +=1 

     if word != shopping[index]: 
      index +=1 

Ben de girdi bir anahtar kelimeyi aynı değilse bir yanıt yazdırmak için kodu gerekir. Şu anda anahtar kelime bulunur, ancak kullanıcı anahtar kelimeden sonra herhangi bir şey girerse, hatalar oluşur.

cevap

1

bu deneyin:

shopping = [ 
    'bananas', 
    'apples', 
    'chocolate', 
    'coffee', 
    'bread', 
    'eggs', 
    'vimto' 
    ] 

need = input ("please input what you need ") 
need = need.lower() 
need = need.split() 
error = False 
for word in need: 
    if word in shopping: 
     pass 
    else: 
     error = True 

if Error: print ("Not on the list") 
else: print ("Added to basket") 
+0

eğer girdi birkaç kelime etrafında, teşekkür ederim anahtar kelime her kelime için "Listede değil" yazdırır, Acı çektiğim için özür dilerim, ancak bunu nasıl durduracağınızı biliyorsunuz, bu yüzden sadece bir kez yazdırıyor, th e kullanıcı girişi? –

+0

Bunun için çok teşekkür ederim, karmaşıklaştığım noktaya geldim ve ağaçları ağaçtan göremedim. –

5

Bu çılgın döngülere ihtiyacınız yok.

Sadece basit

if thing in shopping_list: 
    # this is good! 
else: 
    # do something 

Sonuçta, kod aşağıdaki gibi görünecektir:

need = input("Input what you need: ") 
need = [x.strip() for x in need.lower().strip().split()] 

for thing in need: 
    if thing in shopping_list: 
     print("Added this!") 
    else: 
     print("No, man, you aren't buying this!")