gpt4 book ai didi

python - 递归函数(基本)

转载 作者:行者123 更新时间:2023-12-01 01:07:24 28 4
gpt4 key购买 nike

我正在开发一个相当基本的函数,我发现很难弄清楚为什么我会得到我的输出。

def mystery(n):    
print(n)
if n < 4:
mystery(n + 1)
print(n)

mystery(1)

这是我的输出:

1
2
3
4
4
3
2
1

我想我很清楚输出的第一部分,n < 4,所以我们每次都加1,然后当我们达到4时,函数会跳过if部分并再次打印(n),即4。然后我有点迷失了,为什么输出会倒数到 1。我猜我忽略了递归的一些非常明显的部分,感谢您的帮助。

最佳答案

每次 mystery(n + 1) 完成时,都会调用下一个 print(n)

也许下面的代码更清楚:

def mystery(n):
print('\t' * n + 'enter mystery ' + str(n))
if n < 4:
print('\t' * n + 'before mystery(n+1) ' + str(n))
mystery(n + 1)
print('\t' * n + 'after mystery ' + str(n))

mystery(1)

输出:

enter mystery 1
before mystery(n+1) 1
enter mystery 2
before mystery(n+1) 2
enter mystery 3
before mystery(n+1) 3
enter mystery 4
after mystery 4
after mystery 3
after mystery 2
after mystery 1

关于python - 递归函数(基本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207320/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com