我试图写一个递归函数,从打印0到n,但我不知道该怎么做。我不小心做了一个从n到的打印0:
0
n
def countdown(n): print(n) if n == 0: return 0 return countdown(n - 1)
我不知道这是否有帮助,也许我可以更改代码中的内容以使其从0变为n?
你差点知道了!这是一个固定的简化版本:
def countup(n): if n >= 0: countup(n - 1) print(n)
注意:
print
n < 0
None
更新
看来编写尾部递归解决方案非常流行:)哦,好吧,这是我的照片,它是@AndyHayden想法的简化且尾部递归的版本- 使用尾部调用优化装饰器配方:
@tail_call_optimized def countup(N, n=0): print(n) if n < N: countup(N, n + 1)
无论哪种方式,它都能按预期工作:
countup(5) => 0 1 2 3 4 5