我为学校做了一项测试,用于测试密码强度的程序。正如你在下面看到的,我已经制作了这个节目。当我把它打开时,我收到了它,因为它可以方便地使用内置函数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")
答案 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
遍历密码,直到找到列表中的字符