|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
'''——检查密码安全级别——'''
p = input('请输入密码:')
list1 = ['~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_']
n = 0
if (p.isalnum() == True) and (len(p) <= 8):
print('密码等级:低')
elif (len(p) >= 16):
while n < len(list1):
if ((p.isalpha() == False) and (p.isdigit() == False)) and (p.find(list1[n]) == True) and (p[0].isalpha == True):
print('密码等级:高')
else:
n += 1
else:
if ((p.isalpha() == False) and (p.isdigit() == False)) and (len(p) >= 8):
print('密码等级:中')
else:
while n < len(list1):
if ((p.isalpha() == True) or (p.isdigit() == True)) and (p.find(list1[n]) == True) and (len(p)>= 8):
print('密码等级:中')
else:
n += 1
'''问题出现在:输入以字母打头的16位以上英数符兼备的复杂密码时,并没有打印出“密码等级:高”,其他情况正常
'''
你在你的这句中加一句打印就会看出来是什么原因
- else:
- n += 1
- print("密码等级。。。。。待确定")
复制代码
其实就是因为你用一个while循环去判断,这种判断是循环判断,不满足条件的其实在n+1这里,但是你没有打印
不过再这加一行打印也不行,这样会让这句话打印好几遍
总的来说,问题出来你用这个while循环这里,你要换成一个比较直接的if来判断
|
|