文酱ww 发表于 2018-3-26 16:37:54

密码安全性测定程序

自己没看答案写了一个,如下:
symbols=r'~!@#$%^&*()_=-/,.?<>;:[]{}\|'
chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
num='0123456789'
while True:
    password= input('请输入密码:')
    length=len(password)
    a=b=c=d=e=0
    for each in password:
      if each in symbols:
            a=1
      if each in chars:
            b=1
      if each in num:
            c=1
    if length<8:
      e=0
    if 8 <= length <16:
      e=1
    if length>=16:
      e=2
    if a+b+c+e==5:
      print('高级密码')
    if a+b+c+e==4:
      print('中级密码')
    else:
      print('低级密码')


运行之后输入ajgogjiosai22222222222_______之类会这样:
高级密码
低级密码 #这里为什么会出现一个低级密码啊?????

BngThea 发表于 2018-3-26 16:44:25

倒数第一个if改为elif

文酱ww 发表于 2018-3-26 17:13:05

BngThea 发表于 2018-3-26 16:44
倒数第一个if改为elif

哟!为啥啊???

BngThea 发表于 2018-3-26 17:24:52

文酱ww 发表于 2018-3-26 17:13
哟!为啥啊???

else只和if搭配
如果不改,那就和最后那一个判断搭配,而实际三者应该选其一

文酱ww 发表于 2018-3-26 17:59:33

懂了懂了,如果倒数第一个不改为elif那么在判断完倒数第二个if为真,打出来'高级答案'之后,会继续往下判断需要改为elif的那个if,这个if是false,就会把else里的'低级密码'打出来啦!!!

文酱ww 发表于 2018-3-26 18:00:31

BngThea 发表于 2018-3-26 17:24
else只和if搭配
如果不改,那就和最后那一个判断搭配,而实际三者应该选其一

懂了,{:5_92:}
页: [1]
查看完整版本: 密码安全性测定程序