首页 > 解决方案 > 有人可以向我解释为什么给出这个输出吗?

问题描述

def recursion(n):
    if n < 10:
        return
    m = n/3
    recursion(m)
    print(m)

recursion(243)

OUTPUT: 9.0
        27.0
        81.0

我希望输出仅为 9.0 ......

将函数放入函数中究竟是如何工作的?即它的执行流程是这段特定的代码吗?

标签: python

解决方案


这是发生的事情的调用树:

recursion(243)
  recursion(81)
    recursion(27)
      recursion(9)
          return
      print(9)
    print(27)
  print(81)

正如你所看到的,所有的 print 语句都是在所有调用之后执行的recursion。要仅9作为输出,您应该只print(n)在 theif之前拥有return并删除所有其他print


推荐阅读