我在使用 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)
我在使用 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)
因为在你的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)
你忘了一个基本情况。每个递归函数都应该有一个基本案例。它不断调用自己,因此达到最大深度。
线
return double_list(x)
一遍又一遍地调用同一个函数。