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