python - 有人可以向我解释为什么给出这个输出吗?
问题描述
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 ......
将函数放入函数中究竟是如何工作的?即它的执行流程是这段特定的代码吗?
解决方案
这是发生的事情的调用树:
recursion(243)
recursion(81)
recursion(27)
recursion(9)
return
print(9)
print(27)
print(81)
正如你所看到的,所有的 print 语句都是在所有调用之后执行的recursion
。要仅9
作为输出,您应该只print(n)
在 theif
之前拥有return
并删除所有其他print
。
推荐阅读
- javascript - 在不破坏 UI 的情况下将网格项添加到同位素
- python - 在笔记本中输入 - Tkinter
- excel - 使用每个列出的 OU 的所有计算机创建 excel csv 文件
- jquery - 查找具有相同输入值的表行
- python - librosa 库在部署到 heroku 服务器时出错
- javascript - array.reverse() 在平面数组中逐块
- javascript - 来自链接的简单 JQuery UI 对话框
- c - 如何在 for 循环中使用 OMP(C 编程)
- r - 没有内联/创建本地包的 Rcpp 并行化
- javascript - 根据 DB 值验证用户输入