递归程序返回“ None”而不是计算值

时间:2019-04-21 18:11:51

标签: python recursion return

我写了一个递归函数来解决Tower Hopper Problem。 可以在https://www.youtube.com/watch?v=kHWy5nEfRIQ上找到此问题的链接。 解决方案工作正常,但是返回值时我遇到了问题。

这是我的代码:

towers = [4,2,0,0,2,0]

def tower_hopper(towers,i):
    if i >= len(towers):
        print('yes')
        return 1        
    elif towers[i] == 0:
        return 0
    else:
        for j in range(1,towers[i]+1):
            tower_hopper(towers, i+j)

print (tower_hopper(towers,0))

该代码正确打印了yes,但是没有返回1

我尝试在return tower_hopper(towers, i+j)内执行for loop,但是它没有按预期工作。我看到了针对if条件的解决方案,但是没有针对for loop的条件。在执行for循环时,只要返回第一个0,函数调用就会在此结束,并且不会执行剩余的循环。

0 个答案:

没有答案