🧠 Bonus - Kleinschreibung und Zahlen
Abschlussbedingungen
Anzeigen
Aufgabenstellung
Das Programm soll nun noch prüfen, ob auch wirklich Kleinbuchstaben benutzt werden.
Tipp: Die Funktion `.islower()`, die du ähnlich wie `.isdigit()` auslösen kannst, gibt `True` zurück, wenn ein Zeichen klein geschrieben ist.
Außerdem soll das Passwort immer abgelehnt werden, wenn eines der folgenden Zeichenketten im Passwort auftaucht: "passwort", "123", "hallo". Der Nutzer soll dann eine Meldung bekommen, dass sein Passwort zu leicht zu erraten ist.&;
So kannst prüfen, ob eine Zeichenkette in einer anderen enthalten ist:
```lang:python;; if zeichenkette in dein_text: ```
Erstelle ein neues Projekt in replit und leg los!
Hinweis
Klicke hier, um eine mögliche Lösung anzeigen
import string
MIN_LAENGE = 8
def enthaelt_zahl(passwort):
for zeichen in passwort:
if zeichen.isdigit():
return True
def enthaelt_sonderzeichen(passwort):
for zeichen in passwort:
if not zeichen.isalnum():
return True
def enthaelt_kleinbuchstaben(passwort):
for zeichen in passwort:
if zeichen.islower():
return True
def lang_genug(passwort):
if len(passwort) >= MIN_LAENGE:
return True
def leicht_zu_erraten(passwort):
leichte_zeichenfolgen = ["passwort", "123", "hallo"]
for leichte_zeichenfolge in leichte_zeichenfolgen:
if leichte_zeichenfolge in passwort:
return True
def passwort_sicher(passwort):
if leicht_zu_erraten(passwort):
print(f'Dein Passwort ist zu leicht zu erraten.')
return False
if lang_genug(passwort) and enthaelt_zahl(passwort) and enthaelt_sonderzeichen(passwort) and enthaelt_kleinbuchstaben(passwort):
return True
while True:
passwort = input("Dein Passwort: ")
if not passwort_sicher(passwort):
print("Passwort nicht sicher. Bitte versuche es erneut.")
else:
print(f'Herzlichen Glückwunsch, dein Passwort ist sicher!')
break