本帖最后由 jackz007 于 2020-2-29 13:40 编辑
给你一个和小甲鱼完全不同版本的代码,看看自己能不能找到答案#-*-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 # 键入空回车结束运行
是不是简洁了很多? |