Python 为什么这个递归求和函数返回None?
在添加后插入“print sum1”表明sum1正在增加,所以我不理解为什么函数返回None。我能想到的唯一一件事是,在返回之前,sum1以某种方式被重置为0,但我不知道为什么会这样。您需要编写Python 为什么这个递归求和函数返回None?,python,recursion,Python,Recursion,在添加后插入“print sum1”表明sum1正在增加,所以我不理解为什么函数返回None。我能想到的唯一一件事是,在返回之前,sum1以某种方式被重置为0,但我不知道为什么会这样。您需要编写 def recursiveadd(x,sum1): if x > 0: sum1 += x recursiveadd(x-1,sum1) else: return sum1 print recursiveadd(100,0) 你需
def recursiveadd(x,sum1):
if x > 0:
sum1 += x
recursiveadd(x-1,sum1)
else:
return sum1
print recursiveadd(100,0)
你需要写作
def recursiveadd(x,sum1):
if x > 0:
sum1 += x
recursiveadd(x-1,sum1)
else:
return sum1
print recursiveadd(100,0)
In [52]: def rec(x, sum = None):
if sum == None:
sum = 0
if x > 0:
sum += x
return rec(x - 1, sum)
else:
return sum
In [52]: def rec(x, sum = None):
if sum == None:
sum = 0
if x > 0:
sum += x
return rec(x - 1, sum)
else:
return sum
跟踪代码并查看返回的内容,重点是返回的内容。请注意,尾部递归可能会破坏python中的堆栈。@MattFenwick:您可以跟踪代码并查看返回的内容,重点是返回的内容。请注意,尾部递归可能会破坏python中的堆栈。@MattFenwick:您可以