递归步骤中有无返回的递归函数

时间:2020-09-23 14:26:00

标签: python recursion return

有人可以向我解释这两个代码之间的区别吗?

def pal(s):
    if s == "":
        return True
    if s[0] != s[-1]:
        return False
    return pal(s[1:-1])

a = "anna"

print(pal(a))

def pal(s):
    if s == "":
        return True
    if s[0] != s[-1]:
        return False
    pal(s[1:-1])

a = "anna"

print(pal(a))

为什么解雇一个返回正确的值,即True,而第二个返回我的值None

1 个答案:

答案 0 :(得分:0)

第一个是使用以下行返回递归解的值:

返回pal(s [1:-1])

第二个只是返回一个void / None,而不是递归方法的解决方案。