【问题标题】:How are functions called in a Recursive function when there are more than 1 function call in one statement in Python?当 Python 中的一条语句中有超过 1 个函数调用时,如何在递归函数中调用函数?
【发布时间】:2020-10-17 22:43:02
【问题描述】:
def fibonacci(n):

    if n == 0 or n == 1: # base c a s e s
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))

当 fibonacci(10) 被调用时,fibonacci(n-1) 是先解析到基本情况,然后再解析 fibonacci(n-2) 吗?

【问题讨论】:

  • 你可以通过在函数顶部添加 print('fibonacci' + str(n)) 来找到。

标签: python recursion fibonacci


【解决方案1】:

来自the docs

Python 从左到右计算表达式。

所以是的,fibonacci(n-2) + fibonacci(n-1) 的求值顺序如您所描述:首先将 fibonacci(n-2) 求值为一个值,然后将 fibonacci(n-1) 求值为一个值,整个表达式求值为这两个值的总和.

在这种情况下,递归没有什么特别之处。即使操作数不是递归函数调用,Python 也会从左到右计算。

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2015-07-09
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多