【发布时间】:2018-03-02 04:26:29
【问题描述】:
我试图更好地理解递归以及 return 语句的工作原理。因此,我正在查看一段代码,用于识别与给定术语相关的斐波那契数 - 在本例中为 4。我很难理解 else 语句。
def f(n):
if n == 0:
return 0
if n == 1:
return 1
else:
return f(n-1) + f(n-2)
f(4)
我曾尝试使用 Visualize Python 检查每一步发生的情况,但当它遇到 else 语句时我会迷路。
看起来它正在取 n 的值并减去 1,以创建一个新的 n 值 3,并将其返回给函数定义。所以它似乎只从 else 语句中的第一个函数返回值。但是,else 语句被编写为返回 2 个函数 f(n-1) + f(n-2) 的总和,在这种情况下,我认为返回值会是 5?你能把两个函数加在一起吗?
提前感谢您的帮助。
这里是Visualize Python Sum of 2 functions中代码的链接
【问题讨论】:
-
这不是添加两个函数,而是将两个函数调用返回的整数相加。每个调用都是完全独立的,特别是每个调用都有自己的
n私有值。
标签: python function recursion fibonacci