请问一下,两种递归为何输出结果不一样
func1输出为3 2 1func2输出为1 2 3
网络上有通过画图解释的 感觉说服力不强
def func1(x):
if x > 0:
print(x)
func1(x - 1)
def func2(x):
if x > 0:
func2(x - 1)
print(x)
func1(3)
func2(3) 用vscode或pycharm的debug功能,观察每一步程序你就知道了。
“网上的说服性不强”,先思考一下自身的能力。
suchocolate 发表于 2021-10-5 14:11
用vscode或pycharm的debug功能,观察每一步程序你就知道了。
“网上的说服性不强”,先思考一下自身的能力 ...
爬一边去 我知道怎么回事还来问? 你说的说服力不强是你看不懂,还是说看懂了但不认同? 第一个好理解
第二个先递归到 x = 0 ,然后再去打印 3 2 1 大马强 发表于 2021-10-5 17:14
你说的说服力不强是你看不懂,还是说看懂了但不认同?
看懂了 但是讲了个大概 没有讲的很详细 拿个纸笔来画画流程
函数为方框,变量放里边
调用设置之上到下 这种函数不应该叫递归,因为只有递的过程,没有归,更准确应该叫嵌套,层层嵌套
func1 是先打印,然后再执行函数,执行 func1(3) 打印 3 执行 func1(2) 打印 2执行 func1(1) 打印 1 执行 func1(0) 不打印,无结果
而 func2 是先执行函数,再打印,执行 func2(3) , 执行 func2(2) ,执行 func2(1),执行 func2(0) ,然后不打印,打印1 打印2 打印3 大马强 发表于 2021-10-5 21:01
拿个纸笔来画画流程
函数为方框,变量放里边
调用设置之上到下
画流程图这个解释知道怎么回事,只看代码的话,不明白func2先递归的话,为什么不输出x
def func2(x):
if x > 0:
func2(x - 1)
print(x) qq1151985918 发表于 2021-10-5 21:14
这种函数不应该叫递归,因为只有递的过程,没有归,更准确应该叫嵌套,层层嵌套
func1 是先打印,然后再 ...
明白了 感谢大佬
页:
[1]