如何将代码更改为不包含内置函数

时间:2016-09-30 09:32:45

标签: python python-3.x

我为学校做了一项测试,用于测试密码强度的程序。正如你在下面看到的,我已经制作了这个节目。当我把它打开时,我收到了它,因为它可以方便地使用内置函数any()。如何调整或更改我的程序以不包含any()功能。

import time

print ("Check of uw wachtwoord veilig genoeg is in dit programma.")
time.sleep(1)
print ("Uw wachtwoord moet tussen minimaal 6 en maximaal 12 karakters
bestaan")
print ("U kunt gebruik maken van hoofdletters,getallen en symbolen (@,#,$,%)")


klein = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
groot = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
nummers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
symbolen= [' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"]

def ok(passwd,l):
return any(k in passwd for k in l)  # checkt of een letter in de lijst in   het wachtwoord zit.

while True:
    inp = input("Wilt u dit programma gebruiken? ja/nee: ")
    if inp == "nee" and "Nee" and "NEE":
    break

elif inp == "ja" and "Ja" and "JA":
    ww = input("Voer uw wachtwoord in: ")
    if len(ww) < 6:
        print ("uw wachtwoord is te kort, uw wachtwoord moet uit minimaal 6 en maximaal 12 karakters bestaan!")
    elif len(ww) > 12:
        print ("uw wachtwoord is te lang, uw wachtwoord moet uit minimaal 6 en maximaal 12 karakters bestaan!")
    elif len(ww) >= 6 and len(ww)<= 12:
        sww = set(ww)           # set is een onorganiseerde verzameling dat betekent dat het niet op order is bijv. SaUj%2F3 = Oonorganiseerd        
        if all(ok(sww,l) for l in [klein,groot,nummers,symbolen]):
            print ("uw wachtwoord is Zeer sterk")
        elif all(ok(sww,l) for l in [klein,groot,nummers]):
            print ("uw wachtwoord is Sterk")
        elif all(ok(sww,l) for l in [klein,groot,symbolen]):
            print ("uw wachtwoord is Sterk")
        elif all(ok(sww,l) for l in [groot,nummers,symbolen]):
            print ("uw wachtwoord is Sterk")
        elif all(ok(sww,l) for l in [nummers,symbolen,klein]):
            print ("uw wachtwoord is Sterk")
        elif all(ok(sww,l) for l in [nummers,symbolen]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [groot,nummers]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [groot,symbolen]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [klein,groot]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [klein,nummers]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [klein,symbolen]):
            print ("uw wachtwoord is Medium")
        elif all(ok(sww,l) for l in [klein]):
            print ("uw wachtwoord is Zwak")
        elif all(ok(sww,l) for l in [symbolen]):
            print ("uw wachtwoord is Zwak")
        elif all(ok(sww,l) for l in [nummers]):
            print ("uw wachtwoord is Zwak")
        elif all(ok(sww,l) for l in [groot]):
            print ("uw wachtwoord is Zwak")

1 个答案:

答案 0 :(得分:0)

修复原始错误后

import time

print ("Check of uw wachtwoord veilig genoeg is in dit programma.")
time.sleep(1)
print ("Uw wachtwoord moet tussen minimaal 6 en maximaal 12 karakters bestaan")
print ("U kunt gebruik maken van hoofdletters,getallen en symbolen (@,#,$,%)")


klein = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
groot = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
nummers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
symbolen= [' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"]

def ok(passwd,l):
    return any(k in passwd for k in l)  # checkt of een letter in de lijst in   het wachtwoord zit.

while True:
    inp = raw_input("Wilt u dit programma gebruiken? ja/nee: ")
    if inp.lower() == "nee":
        break
    elif inp.lower() == "ja":
        ww = raw_input("Voer uw wachtwoord in: ")
        if len(ww) < 6:
            print ("uw wachtwoord is te kort, uw wachtwoord moet uit minimaal 6 en maximaal 12 karakters bestaan!")
        elif len(ww) > 12:
            print ("uw wachtwoord is te lang, uw wachtwoord moet uit minimaal 6 en maximaal 12 karakters bestaan!")
        elif len(ww) >= 6 and len(ww)<= 12:
            sww = set(ww)           # set is een onorganiseerde verzameling dat betekent dat het niet op order is bijv. SaUj%2F3 = Oonorganiseerd        
            if all(ok(sww,l) for l in [klein,groot,nummers,symbolen]):
                print ("uw wachtwoord is Zeer sterk")
            elif all(ok(sww,l) for l in [klein,groot,nummers]):
                print ("uw wachtwoord is Sterk")
            elif all(ok(sww,l) for l in [klein,groot,symbolen]):
                print ("uw wachtwoord is Sterk")
            elif all(ok(sww,l) for l in [groot,nummers,symbolen]):
                print ("uw wachtwoord is Sterk")
            elif all(ok(sww,l) for l in [nummers,symbolen,klein]):
                print ("uw wachtwoord is Sterk")
            elif all(ok(sww,l) for l in [nummers,symbolen]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [groot,nummers]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [groot,symbolen]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [klein,groot]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [klein,nummers]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [klein,symbolen]):
                print ("uw wachtwoord is Medium")
            elif all(ok(sww,l) for l in [klein]):
                print ("uw wachtwoord is Zwak")
            elif all(ok(sww,l) for l in [symbolen]):
                print ("uw wachtwoord is Zwak")
            elif all(ok(sww,l) for l in [nummers]):
                print ("uw wachtwoord is Zwak")
            elif all(ok(sww,l) for l in [groot]):
                print ("uw wachtwoord is Zwak")

如果你真的不想使用任何()类似下面会做的事情

def ok(passwd,l):
    for c in passwd:
        if c in l: return True
    return False

遍历密码,直到找到列表中的字符