2017-11-20 3 views
0

Ich will es so, dass, wenn der Benutzer ein Symbol eingibt, dass es nicht erlaubt ist, endet es und kehrt zum Menü zurück. Wie auch immer, es wird immer die Punktzahl des Benutzers angezeigt, die sie für das Passwort erhalten haben. Ich möchte es so, dass es dies nicht anzeigt, wenn ein verbotenes Symbol eingegeben wird. Hier ist mein Code:Wie kann ich das Programm beenden und zum Menü zurückkehren?

for c in user_password: 
    if c not in symbols: 
     print("Some symbols you entered are not allowed") 
      break 
print(user_score) 
+1

Ich glaube, Sie *** 'in' *** zu überprüfen, um zu verwenden, wenn ein Symbol * ist * eingegeben wurde wie' wenn c in Symbolen: ', derzeit überprüft man, ob die 'c' ist *** nicht in *** Symbolen. Außerdem ist ein Teil Ihrer Einrückung ausgeschaltet ("break" muss zur Ausrichtung auf die vorherige "print" -Anweisung zurückgenommen werden). – davedwards

+0

Ich wollte es so, dass die Variable 'Symbole' erlaubt sind. Dann, wenn irgendein anderes Zeichen wie '!' Oder '' es dem Benutzer mitteilen sollte, dass diese nicht erlaubt sind, und zum Menü zurückkehren. –

+0

Es sei denn, jemand anderes Ihre Anforderungen besser versteht (ich nicht), sind vielleicht Definitionen für 'user_password' und' symbols' sowie ein Beispiel für Anwendungsfall: Benutzereingabe, Strom ungültig Ausgang und gewünschte Ausgabe. – davedwards

Antwort

0

Sie sollten einen raise Exception Ihrer Wahl versuchen. Zum Beispiel scheint es, als ob Sie einen ValueError haben.

So können Sie schreiben:

for c in user_password: 
    if c not in symbols: 
      raise ValueError("The symbol {} you entered is not allowed".format(c)) 
print(user_score) 

Dies wird die Arbeit machen.

Beachten Sie, dass einen Fehler (KeyError, AttributeError, IOError und so) für keinen Grund, so aus Gründen der Klarheit erhöhen können Sie die guten Test-Fehler und die engere Ausnahme zu erhöhen wählen müssen.

Zum Beispiel können Sie die verschiedenen Symbole auflisten, die nicht erlaubt sind.

Ich hoffe, das wird Ihnen helfen.

0

Wenn symbols ist nur ein list von erlaubtcharacters wie:

symbols = [";", ",", ".", "-"] 

dann selbst wenn user_password nur letters enthält und diese symbols, die print noch als normal passieren wird characters (letters a-z) nicht in symbols sein.

Verwandte Themen