有没有办法简化 if/elif 块?

-1 python python-3.x

我是 Python 的新手(而且很差),我只是想知道是否有人可以帮助我简化 if/elif 块。这是一个超级基本的代码,它基本上会询问某人在密码中想要什么,然后为他们随机化一个 pswd。但是如果用户想要大写和数字,还有一些选择。

if upper == True and numbers == True:
    lettersAndDigits = string.ascii_letters + string.digits
elif upper == True and numbers == False:
    lettersAndDigits = string.ascii_letters
elif upper == False and numbers == True:
    lettersAndDigits = string.ascii_lowercase + string.digits
elif upper == False and numbers == False:
    lettersAndDigits = string.ascii_lowercase
Run Code Online (Sandbox Code Playgroud)

对不起,菜鸟问题伙计们

谢谢一群人,这真的很有帮助:)

只是在复习我的 igcse,我正在尝试重新学习正确的程序。我的老师在python方面没那么强

Ama*_*dan 5

每一个== True都没用。之后,注意numbers有一些共同点,并将其提取出来。

if upper:
    lettersAndDigits = string.ascii_letters
else:
    lettersAndDigits = string.ascii_lowercase

if numbers:
    lettersAndDigits += string.digits
Run Code Online (Sandbox Code Playgroud)

你可以进一步压缩它,但原则上 Pythonistas 可能会讨厌它:

lettersAndDigits = string.ascii_letters if upper else string.ascii_lowercase
if numbers:
    lettersAndDigits += string.digits
Run Code Online (Sandbox Code Playgroud)