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
,第二个返回meNone
?第一个返回递归解的值,行为:
返回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))