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

2024-06-26 10:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个学校的作业,要做一个检查密码强度的程序。正如你在下面看到的,我已经做了这个程序。当我把它交上来的时候,我收到了它,因为使用内置函数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")

Tags: inforisokalluwprintelif
1条回答
网友
1楼 · 发布于 2024-06-26 10:21:20

在用原稿修正错误之后

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

遍历密码,直到它在列表中找到一个字符

相关问题 更多 >