为什么TypeError:unhashable类型:'list'即将出现?

时间:2016-03-21 14:20:52

标签: python-2.7 compiler-errors

  

大家好,刚刚运行我的最终代码后遇到错误,我想知道我做错了什么?

导入重新

def password():     打印('输入密码\ n \ n密码必须超过6个字符。\ 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])

密码()

1 个答案:

答案 0 :(得分:0)

if语句替换为以下语句,它将起作用:

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