python密码检查器程序,而循环不工作

2024-03-28 18:39:23 发布

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

我正在做一个密码验证器/检查程序作为我的计算的一部分作业。它必须有大小写字母,长度至少为8个字符。 到目前为止,我已经做到了:

new_password = input("Please enter your new password: ")
new_password2 = input("Please enter your new password again: ")

while new_password != new_password2:
    print("The passwords don't match up.")
    new_password = input("Please enter your new password: ")
    new_password2 = input("Please enter your new password again: ")

if new_password == new_password2:
    length = len(new_password)
    while int(length) < 8:
        print("Your password must be longer")
        new_password = input("Please enter your new password: ")
        new_password2 = input("Please enter your new password again: ")      
    letters = set(new_password)
    lower = any(letter.islower() for letter in letters)
    while new_password == new_password2:
        if not lower:
            print("Your password must contain a lowercase letter")
            new_password = input("Please enter your new password: ")
            new_password2 = input("Please enter your new password again: ")
    upper = any(letter.isupper() for letter in letters)
    while new_password == new_password2 :
        if not upper:
            print("Your password must contain an uppercase letter")
            new_password = input("Please enter your new password: ")
            new_password2 = input("Please enter your new password again: ")

代码运行,但由于某些原因,while循环不能正常工作,即使条件是正确的(例如,密码包含大写字母),用户再次输入密码的选项正在显示。有人能看一下告诉我这里的问题吗?谢谢


Tags: 密码newinputyourifpasswordprintenter
2条回答

您只希望有一个while循环来检查每个需求。参见以下代码:

valid_password = False

while not valid_password: 
    new_password = input("Please enter your new password: ")
    new_password2 = input("Please enter your new password again: ")

    if new_password != new_password2:
        print("The passwords don't match up.")
        continue
    elif len(new_password) < 8:
        print("Your password must be longer")
        continue
    elif new_password.upper() == new_password or new_password.lower() == new_password:
        print("Your password must contain at least one lowercase and uppercase letter")
        continue
    else:
        print("Password Accepted!")
        valid_password = True

希望这有帮助!在

a= int (input("Enter Passcode: "))
if a == 1974:
   print ("     Welcome!!    ")

else:
   print ("Wrong Passcode")
   print ("Run again")

相关问题 更多 >