| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
因为密码初级,中级和高级一开始没有理解,我理解成了要对这三个级别进行检测的了,第一个就不说了,中级和高级我根据老师的答案进行的小改动。 
 
中级: 只能3次尝试,超过次数结束 
count = 3 
str1 = 'Netgear_2' 
symbols = r'''~!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>''' 
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 
nums = '0123456789' 
while count: 
    flag_con = 0  #这个要是放在while 以外,也就是放在上面会使循环有问题的# 
    passwd = input("请输入密码: ") 
    length = len(passwd) 
    if passwd == str1: 
        print('Yes, you get it') 
        break 
    elif length < 8: 
        print('输入有误,输入密码长度不能超过8位,你还有', count-1, '次机会') 
    else: 
        for each in passwd: 
            if each in symbols: 
                flag_con += 1 
                break 
        for each in passwd: 
            if each in chars: 
                flag_con += 1 
                break 
        for each in passwd: 
            if each in nums: 
                flag_con += 1 
                break 
        if flag_con >= 2: #表示两两组合,三个当然也可以的# 
            if passwd != str1: 
                print('password input error, you have', count-1, '次机会') 
        else: 
            print('输入错误,请输入数字,字符串和特殊字符的两两组合', count-1, '次机会') 
    count -= 1 
if count == 0: 
    print("已经超过3次,请稍后再试") 
 
高级: 密码必须由特殊字符开始,为特殊字符,字母加数字的三种组合,其中字母包含大小写。 
 
count = 3 
str1 = 'Netgear_2' 
symbols = r'''~!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>''' 
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 
nums = '0123456789' 
while count: 
    flag_con = 0  #这个要是放在while 以外,也就是放在上面会使循环有问题的# 
    passwd = input("请输入密码: ") 
    length = len(passwd) 
    if passwd == str1: 
        print('Yes, you get it') 
        break 
    elif length <= 3: 
        print('输入有误,输入密码长度不能低于3位,你还有', count-1, '次机会') 
    elif length > 7: 
        print('输入有误,输入密码长度不能超过6位,你还有', count-1, '次机会') 
    else: 
        for each in passwd: #密码必须以特殊字符开头,否则会提示 A10 行的特殊信息 
            if each not in symbols: 
                print('输入错误,请输入以特殊字符开头的密码,密码为特殊字符,字母和数字的三种组合,你还有', count-1, '次机会') 
                break 
            else: 
                for each in passwd: 
                    if each in chars: 
                        if not passwd.islower(): 
                            flag_con += 1 
                            break 
                        else: 
                            print('输入错误,请输入数字,字符串和特殊字符的三种组合,其中字母请包含大小写,你还有', count-1, '次机会') 
                            break 
                break 
                for each in passwd: 
                    if each in nums: 
                        flag_con += 1 
                        break 
                if flag_con >= 2: #表示三三组合# 
                    if passwd != str1: 
                        print('password input error, you have', count-1, '次机会') 
                else: 
                    print('输入错误,请输入数字,字符串和特殊字符的三种组合,你还有', count-1, '次机会') 
                break  #必须在这个地方加break,否则下面一行的else仍然会被检测到 
    count -= 1 
if count == 0: 
    print("已经超过3次,请稍后再试") 
   
 
 
本人完全新手,有写错还望指正,谢谢! |   
 
 
 
 |