Als Teil einer Aufgabe erstelle ich ein Programm, das einen Benutzer auffordert, einen Benutzernamen und ein Passwort einzugeben.Validieren Sie den Inhalt einer vom Benutzer eingegebenen Zeichenfolge in Python?
ich den Benutzernamen Teil (leicht) abgeschlossen haben, aber in den Zuordnungsanweisungen, muss das Passwort:
- enthalten einen Großbuchstaben
- einem Kleinbuchstaben
- länger als 6 Zeichen
- enthalten eine Reihe
- kein weißer Raum
Es gibt 5 spezifische Fehlermeldungen, die angezeigt werden müssen, wenn eine dieser Bedingungen nicht zutrifft.
Was ich derzeit habe, hat ein seltsames Verhalten, die Fehler werden nur in einer bestimmten Reihenfolge angezeigt (zum Beispiel, Passwort "f" wird den Fehler haben "muss ein Großbuchstabe haben" anstelle von "muss länger sein als 6 Zeichen "). Ich weiß, dass dies wegen der Verschachtelungsreihenfolge der if-Anweisungen ist, aber wenn es einen besseren Weg gibt ... Es fängt auch nicht aus weißem Grund Leerzeichen in das Passwort ein. Ich weiß, dass es wahrscheinlich nicht der effizienteste Weg ist, aber hier ist, was ich bisher habe:
def validatePassword():
accept = "n"
while accept == "n":
password = input("Please enter a valid password: ")
upper = "n"
lower = "n"
digit = "n"
length = "n"
white = "n"
if len(password) >= 6:
length = "y"
for char in password:
if char in string.ascii_uppercase:
upper = "y"
if char in string.ascii_lowercase:
lower = "y"
if char in string.digits:
digit = "y"
if char not in string.whitespace:
white = "y"
if upper == "y":
if lower == "y":
if digit == "y":
if length == "y":
if white == "y":
accept = "y"
else:
print("::: ERROR :::",password,"must not have any white space character.")
else:
print("::: ERROR :::",password,"must be longer than 6 characters.")
else:
print("::: ERROR :::",password,"must contain a number.")
else:
print("::: ERROR :::",password,"must contain a lowercase character.")
else:
print("::: ERROR :::",password,"must contain an uppercase character.")
return password
Versuchen Sie stattdessen eine Regex. – ZdaR
Nicht einmal sicher, was das ist. Ich bin 8 Wochen in einem 10 Wochen Einführungskurs. –
Vielleicht solltest du mit deinem [Klassenkameraden] arbeiten (http://stackoverflow.com/questions/37337727/python-passwort-verification-program). – TigerhawkT3