Recursive function to sum elements in a list is returning None
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))
Output
None
Recursive function to sum elements in a list is returning None
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))
Output
None
You need to return the function when you call it from inside itself:
def recsum(l,sum=0):
sum += l[0]
l = l[1:]
if l:
return recsum(l,sum)
else:
return sum
Resolved:
when l
was non-empty then function was returning None
so just adding a return statement resolved the issue
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))
Output: 15