我正在练习递归编程......我正在用Python测试这段代码:
def sum(f,a, b):
def iter(a, result):
if (a>b):
print result
return result
else: iter(a+1, result+a)
return iter(a, 0)
id = lambda x: x
def sumInts(a, b): return sum(id, a, b)
print sumInts(1,10)
printout是None ...调试它,我发现var:result在返回最后一个循环之前计算int的总和,但是从函数返回的值是None ...
失败了什么? ---只是学习Python,所以,请和我好,谢谢
答案 0 :(得分:2)
else: iter(a+1, result+a)
应该是
else: return iter(a+1, result+a)
Python中没有隐式返回。
答案 1 :(得分:0)
你错过了一份回复声明:)
def sum(f,a, b):
def iter(a, result):
if (a>b):
print result
return result
else:
# Need a return here
return iter(a+1, result+a)
return iter(a, 0)
id = lambda x: x
def sumInts(a, b):
return sum(id, a, b)
print sumInts(1,10)