4

我在使用 codecademy.com 时在 python 中有一个非常简单的函数。代码通过了练习,但确实会导致最大递归错误,我不明白为什么。这就是我所拥有的:

n = [3, 5, 7]

def double_list(x):
    for i in range(0, len(x)):
        x[i] = x[i] * 2
    return double_list(x)

print double_list(n)
4

2 回答 2

6

因为在你的double_list你又在打电话double_list

return double_list(x)

这将导致您进入无限循环,除非您设置它应该中断的条件。

OP 已经解决了,这是他的解决方案:

n = [3, 5, 7]

def double_list(x):
    for i in range(0, len(x)):
        x[i] = x[i] * 2
    return x

print double_list(n)
于 2013-05-04T13:35:41.477 回答
2

你忘了一个基本情况。每个递归函数都应该有一个基本案例。它不断调用自己,因此达到最大深度。

线

return double_list(x)

一遍又一遍地调用同一个函数。

于 2013-05-04T13:36:25.620 回答