python - 密码检查程序,while 循环不起作用

萨拉·巴克斯

我正在制作一个密码验证器/检查器程序作为我计算任务的一部分。它必须有一个大写和小写字母,并且长度至少为 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 循环也不起作用(例如,密码包含大写字母),显示用户再次输入密码的选项。有人可以看看并告诉我这里的问题吗?谢谢

阿拉斯法案

您只想有一个 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

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python while循环迭代不起作用

来自分类Dev

我的While循环在python中不起作用

来自分类Dev

在while循环内中断不起作用(Python)

来自分类Dev

在不起作用的while循环中减去| Python

来自分类Dev

虽然循环小写程序在 python 3.6.4 中不起作用

来自分类Dev

While循环不起作用

来自分类Dev

While循环不起作用

来自分类Dev

Python 密码检查器程序 - 与 .pop() 值的比较不起作用

来自分类Dev

Python-break语句在while循环内的else语句中不起作用

来自分类Dev

For 循环不起作用但 while 循环起作用

来自分类Dev

For循环在python函数中不起作用

来自分类Dev

“ for”循环在python 3.6中不起作用

来自分类Dev

For 循环在 python 3 中不起作用

来自分类Dev

Python字典循环不起作用

来自分类Dev

Python检查NoneType不起作用

来自分类Dev

Python无检查不起作用

来自分类Dev

Python素数检查器不起作用

来自分类Dev

Realloc在while循环中不起作用

来自分类Dev

使用if语句的while循环不起作用

来自分类Dev

通过XPathNodeIterator的while循环不起作用

来自分类Dev

StreamReader的While循环不起作用

来自分类Dev

UILongPressGestureRecognizer中的While循环不起作用

来自分类Dev

while循环更新查询不起作用

来自分类Dev

jQuery while循环不起作用

来自分类Dev

while循环在Java中不起作用

来自分类Dev

/ while循环不起作用吗?

来自分类Dev

C- While循环不起作用

来自分类Dev

为什么while循环不起作用?

来自分类Dev

简单的while循环不起作用