2017-02-28 2 views
0

Die Voraussetzung für diesen Code ist, nach einem Namen zu fragen, mit maximal 3 Versuchen.Hinzufügen einer if-Anweisung zu einer while-Schleife

Ich kann nur das richtige Passwort für den ersten Versuch eingeben, "gut gemacht." Bei den anderen beiden Versuchen wird es als "Erneut versuchen" zurückgegeben. Wie kann ich es gut gemacht zurückkommen, wenn bei einem der Versuche eingegeben?

+0

FYI, 'Versuche = Versuche-1' können einfacher als' Versuche - = 1' geschrieben werden – Alexander

Antwort

4

Wenn Sie es erneut versuchen möchten, müssen Sie diesen Wert erfassen.

password = input ('Try again: ') 

Andernfalls wird die while-Schleife nie aufhört.

Zusätzlich hat Python während-else, der das Problem debuggen helfen könnte

while password != 'correct' and attempts >= 2: 
    password = input ('Try again: ') 
    attempts = attempts-1 
else: 
    print('while loop done') 
    if password == 'correct':    #Where the problems begin 
     print ('Well done') 

Oder

attempts = 3 
password = input('Enter pass: ') 
while attempts > 0: 
    if password == 'correct': 
     break 
    password = input ('Try again: ') 
    attempts = attempts-1 
if attempts > 0 and password == 'correct': 
    print ('Well done') 
+0

Danke. Nachdem das Passwort der Eingabe zugewiesen wurde ('Try again'), funktionierte es perfekt. –

0
attempts = 3 
while attempts > 1: 
    password = input("Guess password") 
    if password == "correct" and attempts > 2: 
     print("Well done") 
     break 
    else: 
     print("try again") 
    attempts = attempts - 1 
+1

Bitte erläutern Sie Ihre Antwort! –

+0

Versuche sind 3, wenn 0 Versuch bleibt, kommt es aus der Schleife heraus. Wenn die verbleibenden Versuche 2 sind, sollte es gut gedruckt werden. Aber wenn die verbleibenden Versuche weniger als 2 sind, dann sollte es erneut versuchen und erneut nach dem Passwort fragen. – Luv33preet

0

Dies ist eine unterhaltsame Art und Weise, es zu tun, statt Mit einem Zähler können Sie eine Liste mit drei Elementen erstellen und der while Test stellt sicher, dass noch Elemente übrig sind :

password,wrong,right = 'nice',['Wrong']*3,['you got it!'] 
while len(wrong)>0 and len(right)>0: 
    right.pop() if input('guess:')==password else wrong.pop() 
Verwandte Themen