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

我是python的初学者,我正在尝试创建一个检查密码可变性的程序

代码已经完成,但当我执行它时,它会多次打印相同的消息。但我只想打印一次

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