Python 如何确保我只打印一次?
我是python的初学者,我正在尝试创建一个检查密码可变性的程序 代码已经完成,但当我执行它时,它会多次打印相同的消息。但我只想打印一次Python 如何确保我只打印一次?,python,python-3.x,printing,Python,Python 3.x,Printing,我是python的初学者,我正在尝试创建一个检查密码可变性的程序 代码已经完成,但当我执行它时,它会多次打印相同的消息。但我只想打印一次 def controleer_paswoord(wachtwoord): import re for item in wachtwoord: kleine_letter = re.search( "[a-z]",wachtwoord) hoofd_letter = re.search( "[A-Z]",wach
def controleer_paswoord(wachtwoord):
import re
for item in wachtwoord:
kleine_letter = re.search( "[a-z]",wachtwoord)
hoofd_letter = re.search( "[A-Z]",wachtwoord)
cijfer = re.search ("[0-9]",wachtwoord)
karakter = re.search ("[$#@]",wachtwoord)
lengte = (len(wachtwoord)<6 or len(wachtwoord)>12)
if kleine_letter == None:
print("{0} -> Geldig paswoord? False".format(wachtwoord))
elif hoofd_letter == None:
print("{0} -> Geldig paswoord? False".format(wachtwoord))
elif cijfer == None:
print("{0} -> Geldig paswoord? False".format(wachtwoord))
elif karakter == None:
print("{0} -> Geldig paswoord? False".format(wachtwoord))
elif lengte == None:
print("{0} -> Geldig paswoord? False".format(wachtwoord))
else:
print("{0} -> Geldig paswoord? True".format(wachtwoord))
# wachtwoord = (input("Geef hier uw gewenste wachtwoord in:" ))
wachtwoord = "2w3E"
controleer_paswoord(wachtwoord)
我想要的是:
#2w3E -> Geldig paswoord? False
在wachtwoord:中的
项中,您正在迭代字符串中的每个字符,这似乎是无意的。在for循环中,似乎没有在任何地方使用item
,因此它只是以相同的方式对每个字符重复该过程。尝试删除您为密码中的每个字符打印的那一行。去掉那个环。re搜索将遍历整个密码,因此不需要循环遍历字符。重要的线索是,您从未在循环中使用项,因此您没有真正遍历字符串
一个有用的调试提示:使您的print语句唯一,这样您就可以知道每次迭代失败的原因。为什么在wachtwoord中有for循环for项?您在代码的其余部分中不使用项。@X.Feliers很乐意提供帮助,欢迎使用Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。
#2w3E -> Geldig paswoord? False