如何获取参数的总和,以便将其分配给变量?

How do I get the sum of my parameters so I can assign it to a variable?

提问人:Feb Anene 提问时间:11/16/2023 最后编辑:Feb Anene 更新时间:11/16/2023 访问量:26

问:

import string
import secrets
import random

def password_gen(num_letters, num_digits, num_special_char):
    password_length = num_letters + num_digits + num_special_char #Better way to do this?
    password = []
    
    print("Welcome to Password Generator, your desired password length is", password_length)
    print("Your password will now be generated...")

    for i in range(num_letters):
        password.append(secrets.choice(string.ascii_letters))
    for i in range(num_digits):
        password.append(secrets.choice(string.digits))
    for i in range(num_special_char):
        password.append(secrets.choice(string.punctuation))

    random.shuffle(password)
      
    print("Your generated password is", "".join(password))

password_gen(6, 1, 3)

尝试使用 zip() 和 sum(),但出现 TypeErrors,例如 +: 'int' 和 'tuple'' 不支持的操作数类型

Python 参数 总和

评论

1赞 DeepSpace 11/16/2023
为什么你认为有更好的方法?未来参数的数量会改变吗?如果没有,这几乎是尽可能可读的。我什么都行,我会寻找循环的替代品。
0赞 Sash Sinha 11/16/2023
您当前的方法实际上是计算密码总长度的最直接、最有效的方法。
0赞 Feb Anene 11/16/2023
@DeepSpace 好的,谢谢,你能解释一下为什么循环效率低下吗?我是新来的,我相信你能看出来,你会建议看什么?
0赞 Feb Anene 11/16/2023
@SashSinha好的,谢谢你抽出时间,不胜感激。
0赞 AKX 11/16/2023
真的没有必要事先对选项求和——你可以在最后打印所有内容......len(password)

答: 暂无答案