我正在尝试在 Python 中进行乘法递归(将容器的所有值相乘)。该函数接收列表的元素作为位置参数 (*n)。在执行时,我收到错误消息“已达到最大递归深度”。但是,如果我简单地使用 n 而不是 *n 并将元素发送到列表中,则代码可以正常工作。
代码不起作用:
def multiply(*n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply(5,1,4,9)
工作代码:
def multiply(n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply([5,1,4,9])