Skip to main content
 首页 » 编程设计

python之如何用递归对参数列表求和

2025年05月04日12shanyou

我正在尝试编写一个函数,它接受任意数量的参数,然后使用递归对它们求和(我没有使用内置的求和函数。我假设参数是 int。)

但我的基本情况并没有阻止它递归!有什么提示吗?

def sum_all(*args): 
 if args == (): 
    return 0 
 else: 
    return args[0] + sum_all(args[1:]) 

请您参考如下方法:

您需要在递归中展开 args,not args 就足以进行测试:

def sum_all(*args): 
    if not args: 
        return 0 
    return args[0] + sum_all(*args[1:]) 
                             ^ 

Python 3 还添加了一些新语法,允许您解包 *args,例如:

def sum_all(*args): 
    if not args: 
        return 0 
    a, *b = args 
    return a + sum_all(*b)