|  | 
 
 发表于 2020-3-16 20:25:39
|
显示全部楼层
   本楼为最佳答案 
| 复制代码#-*-coding:gbk-*-
nums = '0123456789'
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
while True:
    passwd = input('请输入需要检查的密码组合:') . strip()
    length = len(passwd)
    if length > 0:                                                                # 实际键入密码才进行评分
        flag_len = 3 if length >= 16 else 2 if 8 <= length < 16 else 1            # 密码长度评分
        flag_con = 1 if sum([1 for x in passwd if x in nums]) > 0 else 0          # 密码构成评分:包含数字 = +1
        flag_con += 1 if sum([1 for x in passwd if x in chars]) > 0 else 0        # 密码构成评分:包含字母 = +1
        flag_con += 1 if sum([1 for x in passwd if x in symbols]) > 0 else 0      # 密码构成评分:包含特殊字符 = +1
        print()
        print('您的密码安全级别被评定为:' , end='')
        if passwd[0] . isalpha() and flag_len > 2 and flag_con > 2 :
            print('高')
            print('请继续保持')
        else:
            if flag_len > 1 and flag_con > 1:
                print('中')
            else:
                print('低')
            print('"请按以下方式提升您的密码安全级别:\n\
            \t1.密码必须由数字、字母及特殊字符三种组合\n\
            \t2.密码只能由字母开头\n\
            \t3.密码长度不低于16位')
        print()
    else:                                                                         # 否则
        break                                                                     # 键入空回车结束运行
 | 
 |