返回值如何工作?

时间:2014-10-16 03:54:26

标签: python return

def fudz(n):
    if n <= 2:
        return 1
    print("nom" * n)
    return fudz(n-1) + fudz(n//2)

result = fudz(4)

有人可以一步一步地给我这个功能吗?

1 个答案:

答案 0 :(得分:1)

这是一个递归函数,这意味着它在问题的简化实例上调用自身的实例,直到它到达已经知道答案的基本情况。请记住,对函数的任何调用都发生在它自己的堆栈帧中,因此它将拥有自己的n值。

你可以自己走一走。首先,考虑n==2时会发生什么。然后考虑n==3,并增加n,直到它对您有意义为止。