2017-05-24 5 views
0

Was würde ich hier tun, um meinen Code für eine Iteration zurückzugeben?Wie wiederhole ich eine Iteration einer Schleife?

list_ = [3,'yes',True] 
for x in range(len(list_)): 
    print('What is the next item in the list?') 
    answer = input() 
    if answer = list_[x]: 
     print('Good job!') 
    else: 
     print('Nope! Try again.') 

Genau in diesem letzten Teil des Codes (die ‚else‘ Anweisung), wie würde ich es über die gleiche Iteration der for-Schleife wieder zu holen, so dass der Benutzer kann wieder versuchen?

+2

Sie können das nicht wirklich für die 'for' -Schleife tun, aber Sie können eine weitere' while' -Schleife darin einfügen, die so lange auffordert, bis die äußere Schleife fortgesetzt werden kann. – Ryan

Antwort

1

Sie können eine Iteration nicht per se wiederholen. Sie können die Eingabeaufforderung so lange durchlaufen lassen, bis Sie die richtige Antwort erhalten.

for x in range(len(list_)): 
    while True: 
     print('What is the next item in the list?') 
     answer = input() 
     if answer == list_[x]: 
      print('Good job!') 
      break 
     else: 
      print('Nope! Try again.') 

Übrigens ist ein Looping über die Indizes der Liste nicht notwendig, zumindest nicht in diesem Beispielcode. Es wäre idiomatischer, die Listenelemente direkt zu durchlaufen.

for x in list_: 
    while True: 
     print('What is the next item in the list?') 
     answer = input() 
     if answer == x: 
      print('Good job!') 
      break 
     else: 
      print('Nope! Try again.') 
0

Wenn Sie nicht über eine while-Schleife möchten Ihre Schleife in einem Verfahren mit einer Fahne definieren könnte, die selbst wieder aufrufen, wenn die Antwort falsch ist. Die While-Schleife ist wahrscheinlich eine bessere Möglichkeit, dies zu umgehen.

Verwandte Themen