递归函数不返回

时间:2020-01-18 04:34:56

标签: python function recursion

对列表中的元素求和的递归函数返回

def recsum(l,sum=0):
    sum += l[0]
    l = l[1:]
    if l:recsum(l,sum)
    else: return sum

val = [2,3,4,5]

print(recsum(val))

输出

没有

2 个答案:

答案 0 :(得分:1)

从内部调用函数时,您需要返回该函数:

def recsum(l,sum=0):
    sum += l[0]
    l = l[1:]
    if l:
        return recsum(l,sum)
    else: 
        return sum

答案 1 :(得分:0)

已解决: 当l非空时,函数返回None 因此,只需添加return语句即可解决问题

def recsum(l,sum=0):
    sum += l[0]
    l = l[1:]
    if l:return recsum(l,sum)
    else: return sum

val = [2,3,4,6]

print(recsum(val))

输出:15