| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
number = "0123456789" 
letter = "abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
symbool = r"~!@#$%^&*()_=-/,.?\\<>;:[]{}|" 
x = 0 
y = 0 
z = 0 
while True: 
    passwd = input("请输入密码:") 
    length =len(passwd) 
    while(passwd.isspace()or length == 0): 
        passwd=input("您输入的密码为空,请重新输入:") 
    if length <= 8 and (passwd.isdigit() or passwd.isalpha()): 
        print("这是一个低级密码") 
        break 
        continue 
    if length > 8: 
        for each in passwd: 
            if each in number: 
                x += 1 
                break 
        for each in passwd: 
            if each in letter: 
                y += 1 
                break 
        for each in passwd: 
            if each in symbool: 
                z += 1 
                break 
    if x + y + z == 2: 
        print("这是一个中级密码") 
        break 
        continue 
    n = 1 if passwd[0] in letter else 0 
    if x + y + z == 3 and length >= 16 and n: 
        print("这是一个高级密码") 
        continue 
         
    print("无法识别,不属于三种密码中任何一种!!!") 
 
 
 
 
 
 
运行后,如果第一遍密码输入为空,此后再输入密码,有时会返回无法识别,不属于三种密码中的一种, 
还有,在验证过一次密码强度后,需要重启程序,不知道该怎么处理,是我缩进的问题吗?希望各位大佬帮忙解答一下
 本帖最后由 Twilight6 于 2020-5-25 19:07 编辑 
运行后,如果第一遍密码输入为空,此后再输入密码,有时会返回无法识别,不属于三种密码中的一种,  
如果你输入空格 因为你值判定一次 length =len(passwd) 长度 在 while 循环里没有重新给予 赋值 导致  
 while(passwd.isspace()or length == 0)  条件里的 length == 0 一直成立 死循环 ,需要在循环下加上重新判断length在验证过一次密码强度后,需要重启程序,不知道该怎么处理,是我缩进的问题吗?  
因为你在 continue 前面加上了 break  退出循环  
还有个地方可以去掉: 
- number = "0123456789"
 
 - letter = "abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
 
 - symbool = r"~!@#$%^&*()_=-/,.?\\<>;:[]{}|"
 
 - x = 0
 
 - y = 0
 
 - z = 0
 
 - while True:
 
 -     passwd = input("请输入密码:")
 
 -     length = len(passwd)
 
 -     while (passwd.isspace() or length == 0):
 
 -         passwd = input("您输入的密码为空,请重新输入:")
 
 -         length = len(passwd)
 
 -     if  length <= 8 or passwd.isdigit() or passwd.isalpha():
 
 -         print("这是一个低级密码")
 
 -         continue
 
 -     elif length > 8:
 
 -         for each in passwd:
 
 -             if each in number:
 
 -                 x += 1
 
 -                 break
 
 -         for each in passwd:
 
 -             if each in letter:
 
 -                 y += 1
 
 -                 break
 
 -         for each in passwd:
 
 -             if each in symbool:
 
 -                 z += 1
 
 -                 break
 
 -     if x + y + z > 1 and length < 16:
 
 -         print("这是一个中级密码")
 
 -         continue
 
 -     if x + y + z == 3 and length >= 16 :
 
 -         print("这是一个高级密码")
 
 -         continue
 
  
-     print("无法识别,不属于三种密码中任何一种!!!")
 
  复制代码 
 
 
 |   
 
 
 
 |