2017-04-30 1 views
-1

Ich möchte eine einfache Möglichkeit kennen, den Zähler innerhalb einer while-Schleife NICHT zu aktualisieren, wenn etwas anderes als y/n eingegeben wird. Hier ist mein Code:While-Schleife - Zähler wird aktualisiert, wenn etwas anderes als y/n eingegeben wird

if yes_or_no == "y":               
    computer_winnings += 1             
elif yes_or_no == "n":              
    user_winnings += 1              
counter += 1                 
if counter > 10:                
    break  

jedoch Haupt counter auch aktualisiert wird, wenn der Benutzer etwas anderes als y eintritt/n. Der Zähler sollte nur aktualisiert werden, wenn y oder n eingegeben wurde.

+0

Setzen Sie einfach 'counter + = 1' in die relevanten' if'/'elif' Anweisungen. – DavidG

+0

Danke! Hier ist, wie ich festgelegt: 27, wenn yes_or_no == "y": 28 Zähler + 1 = 30 elif yes_or_no == "n": Zähler 31 + 1 = 33 else: 34 print ("Bitte geben Sie nur y oder n! ") – Julinha

Antwort

1

Fügen Sie die Zählerinkrement unter einem Test für entweder y oder n

if yes_or_no in ('y', 'n'): 
    counter += 1 
    if yes_or_no == 'y': 
     computer_winnings += 1 
    else: 
     user_winnings += 1 
+0

Danke! Hier ist, wie ich festgelegt: 27, wenn yes_or_no == "y": 28 Zähler + 1 = 30 elif yes_or_no == "n": Zähler 31 + 1 = 33 else: 34 print ("Bitte geben Sie nur y oder n! ") – Julinha

0

Lasst uns sagen, dass wir von 0 bis iterieren 9

i = 0 
while(i < 10): 
    #Ask for user input 
    foo = input() 
    #if foo value != yes_or_no value increment i 
    if foo != yes_or_no: 
     i+=1 
0

Sie müssen richtig einrücken Codes unter welchem ​​Aussage fallen Sie Ich wünsche, dass es drin ist. Wie Sie es geschrieben haben, wenn if/else 1 unabhängige Menge ist, ist der Zähler auch eine unabhängige Menge, und der Zustand if counter ist ebenfalls unabhängig. Sie haben also 3 unabhängige Anweisungen gleichzeitig ausgeführt.

Und mit if-Anweisungen verarbeitet Ihr Code sie nur einmal und nur einmal, also wäre es am besten, wenn Sie eine while-Schleife verwenden würden, bis Sie eine Escape-Anweisung drücken.

Verwandte Themen