2017-08-07 1 views
0

Ich habe eine Funktion in meinem Skript, die ein Argument erhält und vergleicht es mit einigen festgelegten Variablen, um zu sehen, ob das Passwort von geeigneter Stärke ist oder nicht. Immer wenn ich ein passendes/ungeeignetes Passwort eintrage, gibt es zurück, dass das Passwort zu schwach ist. Code unten:Python - Passwort-Checker-Funktion immer schwaches Passwort zurück

def check_password(_passw): 

    length = len(_passw) < 8 
    num = re.search(r'\d', _passw) is None 
    uppercase = re.search(r"[A-Z]", _passw) is None 
    lowercase = re.search(r"[a-z]", _passw) is None 

    suitable = not (length or num or uppercase or lowercase) 

    if _passw is not suitable: 
     print('Password weak, try again') 
     sign_up() 

    else: 
     print('Password accepted') 
+0

Hinweis: 'geeignet' ist ein boolescher Wert: entweder' True' oder 'False', aber' _passw' ist eine Zeichenkette. –

Antwort

3
if _passw is not suitable: 

ist wirklich zu umgangs. Sie meine

if not suitable: 

edit:
Die 'ist' Operator in Python-Tests, wenn zwei Variablen auf die gleiche Speicherstelle verweisen (auch bekannt als Beispiel). Es vergleicht nicht die Werte dieser 2 Variablen. Siehe zum Beispiel here

+1

Ja, '_passw ist nicht geeignet' bedeutet, dass' _passw' und 'passable' keine Referenzen auf dasselbe Objekt sind. Was sie niemals sein werden. – kindall