我正在开发一个相当基本的功能,但发现很难弄清楚为什么得到我的输出。
def mystery(n):
print(n)
if n < 4:
mystery(n + 1)
print(n)
mystery(1)
这是我的输出:
1
2
3
4
4
3
2
1
我想我对输出的第一部分很清楚,n
最佳答案
每次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/