Python 递归步骤中带返回和不带返回的循环函数

Python 递归步骤中带返回和不带返回的循环函数,python,recursion,return,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)) 及 为什么第一个返回正确的值,即True,第二个返回meNone?第一个返回递归解的值,行为: 返回pal(s[1:-1]) 而第二种方

有人能给我解释一下这两种代码的区别吗

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

a = "anna"

print(pal(a))


为什么第一个返回正确的值,即
True
,第二个返回me
None

第一个返回递归解的值,行为:

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


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

如果你有一个以上的迭代,你就有一个递归过程。在第二段代码中,您只要求计算相同的函数,但最终不要求返回。返回的内容将是第一次迭代的“return”块中的内容,因此,如果在
pal(s[1:-1])
之前不调用
return
,函数将只计算内容,但不返回任何内容ok,但当我使用空字符串到达最后一次迭代(递归)时,它不应该返回“True”吗?
def pal(s):
    if s == "":
        return True
    if s[0] != s[-1]:
        return False
    pal(s[1:-1])

a = "anna"

print(pal(a))