2016-03-21 7 views
0

Hello guys just encountered an error after running my final code and i was wondering what i have done wrong?Warum ist TypeError: nicht hashbarer Typ: 'list' kommt?

import re

def Passwort(): print ('ein Passwort \ Geben Sie n \ nDie Passwort muss mehr als 6 Zeichen lang sein. \ N')

while True: 
    password = raw_input('Password: ') 
    if 6 < len(password): 
     break 
    print ('The password must be more than 6 characters.\n') 

password_scores = {0:'Very weak', 1:'Weak', 2:'Medium', 3:'Strong', 4:'Very strong'} 
password_strength = dict.fromkeys(['has_upper', 'has_lower', 'has_num' , 'has_sym', False]) 
if re.search(r'[A-Z]', password): 
    password_strength['has_upper'] = True 
if re.search(r'[a-z]', password): 
    password_strength['has_lower'] = True 
if re.search(r'[0-9]', password): 
    password_strength['has_num'] = True 
if re.search(list("[ !#$%&'()*+,-./[\\\]^_`{|}~ ]") , password): 
    password_strength['has_sym'] = True 

score = len([b for b in password_strength.values() if b]) 

print ('Password is %s' % password_scores[score]) 

Passwort()

Antwort

0

Ersetzen sie Ihre if Anweisung mit dem folgenden und es wird funktionieren:

if re.search("[!#$%&'()*+,-./[\\\]^_`{|}~ ]" , password): 
    password_strength['has_sym'] = True 
Verwandte Themen