isupper()和isdigit()不能一起工作

问题描述 投票:0回答:1

我正在尝试创建一个简单的passwprd应用程序,我想检查我的密码是否满足某些要求。我希望它的某处既有大写字母又有数字。我使用for循环将密码的每个字母存储在列表中,然后检查列表中的每个元素是否为大写。但是,当我在检查字母是否为大写的if语句中时,添加一个新的if statemnt,以检查字符之一是否为数字,if语句不返回任何内容。

def check_password():
    characters = []

    if len(password_entry.get()) >= 8:
        for i in range (len(password_entry.get())):
            characters.append(password_entry.get()[i])
            if characters[i].isupper():
                if characters[i].isdigit():
                    register_user()
                    print("password valid")
            else:
                password_not_valid_upper()
    else:
        password_not_valid_length()
python function passwords uppercase
1个回答
0
投票

您正在检查字符是否为大写,如果是,则检查它是否为数字。不能两者兼有,所以您总是会遇到else password_not_valid_upper()。

© www.soinside.com 2019 - 2024. All rights reserved.