|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
teshuzifu = '~!@#$%^&*()_=-,.?<>;:[]{}|'
shuzi = '0123456789'
zimu = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
password = input('请输入密码:')
length = len(password)
while (password.isspace()) or (length == 0):
password = input("密码不得为空,请重新输入:")
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
for each in password:
if each in shuzi:
flag_con += 1
break
for each in password:
if each in zimu:
flag_con += 1
break
for each in password:
if each in teshuzifu:
flag_con += 1
break
if flag_len ==1 or flag_con == 1:
print("密码强度弱")
elif flag_len == 2 or flag_con == 2:
print("密码强度中")
elif flag_len == 3 or flag_con == 3:
print("密码强度高")
代码我是一边看一遍学着写的,对当中几个for循环里面的break不是特别理解,如果break去除掉的话,我试过打一串16位的数字会显示密码强度高,家里break后就是显示低,这个是为什么呢,密码而且长度和复杂度是or的逻辑,如果长度很长已经达到3级别,复杂度是1,究竟是算弱还是高?最后的几个if都是or的逻辑只要满足一个就行了吧,有大神能指点下迷津不?
不加break就会在自加1后继续for循环,不断自加1,加了break就会在自加1后,跳出循环,继续执行后续代码了
|
|