你差点知道了!这是一个固定的简化版本:
def countup(n): if n >= 0: countup(n - 1) print(n)
注意:
- 您不必从仅打印值的递归函数返回任何内容
- 对于升序打印时,
print
声明必须放在 后 递归调用 - 如果
n < 0
仅打印,则递归退出,因为我们只在打印,此后无需执行任何操作即可返回None
(Python的默认返回值)
更新
看来编写尾部递归解决方案非常流行:)哦,好吧,这是我的照片,它是@AndyHayden想法的简化且尾部递归的版本-
使用尾部调用优化装饰器配方:
@tail_call_optimizeddef countup(N, n=0): print(n) if n < N: countup(N, n + 1)
无论哪种方式,它都能按预期工作:
countup(5)=> 0 1 2 3 4 5



