如何优化嵌套的 if 语句?我不能在这里使用 &&

How do I optimize nested if statements? I cannot use && here

有没有更好的写法?我是 python 编码的新手,我想改进以下代码行。我在这里包含了几行代码,但原始代码比这长得多(多个 if 语句)。任何 guidance/feedback 都会有所帮助。

    upperchar = #generate a char
    pwdlist.append(upperchar)
    if len(pwdlist) < length:
        upperchar2 = #generate a char
        pwdlist.append(upperchar2)
        if len(pwdlist) < length:
            lowerchar = #generate a char
            pwdlist.append(lowerchar)
            if len(pwdlist) < length:
                lowerchar2 = #generate a char
                pwdlist.append(lowerchar2)
                if len(pwdlist) < length:
                    char3 = #generate a char
                    pwdlist.append(char3)

在这里发布我的第一个问题,如果您需要更多信息,请问我。

假设您总是以相同的方式生成一个角色,那么这就可行

pwdlist = []
while len(pwdlist) < length:
    pwdlist.append(generate_char())

或者

pwdlist = [generate_char() for _ in range(length)]

然后你可以在这个生成函数中添加逻辑到return一些基于随机值的东西,例如

def generate_char():
    from random import randrange
    x = randrange(4)
    if x == 0:
        return 'value a-z'
    elif x == 1:
        return 'value A-Z'
    elif x == 2:
        return 'value 0-9'
    elif x == 3:
        return 'punctuation'