def fibo(n):
if n <= 0:
return []
elif n <= 1:
return [1]
elif n <= 2:
return [0, 1]
else:
fibo_s = fibo(n - 1) # Can someone please explain me this else code
fibo_s.append(fibo_s[-1] + fibo_s[-2])
return fibo_s
print(fibo(6))
请帮助我理解“其他代码”,我无法理解
fibo(n-1)
将如何存储[1,0]
fibo
函数被递归调用。
例如,如果我们调用
fibo(4)
,则使用 else 分支。 fibo(n-1)
是fibo(3)
。现在在 that 递归调用中,调用 fibo(2)
。立即返回 [0, 1]
。
为此,我们附加在该列表中添加最后两项的结果。现在
fibo_s
是[0, 1, 1]
。 This 返回到 fibo(4)
调用,该调用将添加最后两个元素(1
和 1
)的结果附加到该列表,给出结果 [0, 1, 1, 2]
。