Was ist mit meiner if-else-Anweisung los? (Python 3.3)

Ich schreibe bedingte Anweisungen für ein Abrechnungsprogrammprojekt. Es ist ein bisschen fortgeschritten für einen Anfänger, den ich kenne, aber ich freue mich über die Herausforderung. Wie auch immer, ich plane, das Programm zu starten, indem ich nach Benutzername und Passwort frage. Das ist also meine erste Codierung für das Programm.

print ("Hello and welcome to Billing Pro, please enter your username and password to access the database.")

username = input ("Enter username:")

if username == "cking" or "doneal" or "mcook":
  print ("Valid username.")
else:
  print ("Invalid username. Please try again.") 


password = input ("Enter password:")

if password == "rammstein1" or "theory1" or "tupac1":
  print ("Valid password. User has been verified.")
else:
  print ("Invalid password. Access denied.")

Jetzt, als ich diesen Code ausführte, wenn ich etwas anderes als die drei Auswahlmöglichkeiten für den Benutzernamen eingegeben hatte, druckte Python die Zeile 'ungültiger Benutzername' aus. Aus irgendeinem Grund wird jetzt der "gültige Benutzername" ausgedruckt und anschließend die Passwortabfrage fortgesetzt. Auch wenn ich etwas anderes als die Auswahlmöglichkeiten für Passwörter eingebe, wird immer die Eingabeaufforderung 'Gültiges Passwort' angezeigt.

Wie kann ich auch die Eingabeaufforderung für den Benutzernamen wiederholen, wenn der Benutzer etwas anderes als die drei Auswahlmöglichkeiten eingibt? Sollte ich eine while-Anweisung anstelle von if-else verwenden oder kann eine while-Anweisung am Ende der if-else-Anweisung stehen, um die Aufforderung erneut auszulösen?

Oh, und ich weiß, dass Sie es nicht sagen können, weil meine Formatierung in der Frage beschissen ist, aber ich habe das Skript selbst richtig eingerückt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage