递归中return语句的含义

时间:2019-02-08 05:49:59

标签: python

不将return语句放在递归命令之前的意义是什么。相对于未调用return函数,根本会发生什么?

def palin1(a):
    length=len(a)
    if a[0]==a[length-1]:
        return palin1(a[1:length-1])
    else:
        return False
    return True

def palin2(m):
    length=len(m)
    if m[0]==m[length-1]:
        palin2(m[1:length-1])
    else:
        return False
    return True

print(palin1("ramoar"))
print(palin2("ramoar"))

错误 是

1 个答案:

答案 0 :(得分:0)

使用return时会发生两种不同的情况:

1。“ return”下方的任何行均不会执行。该功能将在返回行之后停止。

  • 在palin1中返回如果返回则不执行True palin1(a [1:length-1])被击中
  • 在palin2返回中,即使命中palin2(m [1:length-1])也会执行True

2。函数调用将替换为值。

  • 在return palin1(a [1:length-1])中,将在发生函数调用的位置插入返回值
  • palin2(m [1:length-1])将使函数执行,但是 该值将在函数末尾被丢弃