如何修正递归函数的逻辑流程

时间:2019-06-06 02:50:22

标签: python recursion

我正在尝试了解return和递归,这是我的代码。

def test(n, k):
    # print n
    if n == 5:
        print k
        return

    for i in range(k, -1, -1):
        test(n+1, i) 

if __name__ == "__main__":
    test(0,10)

我希望代码在 n 第一次到达 5 并打印 10 时停止。

但是,代码正在经历所有可能的for循环。

我想我误解了return在递归调用中的用法。

是否有一种方法可以使用递归和for循环结构来获得所需的内容?或者我了解递归完全错误的地方。

期待您的帮助。

伊恩

1 个答案:

答案 0 :(得分:0)

这里不需要for循环。

def test(n, k):
    # print n
    if n == 5:
        print(k)
        return

    test(n+1, k) 

if __name__ == "__main__":
    test(0,10)