【发布时间】:2015-03-24 07:50:42
【问题描述】:
尝试使用递归来求解黎曼和。
def f(x):
import math
return 10*math.e**(math.log(0.5)/5.27 * x)
liTotal = 0
def radExpo(start, stop, step):
global liTotal
x = start
area = f(x)*step
liTotal += area
numOfRects = (stop - start) / step
if start > (stop - (2 *step)):
return liTotal
else:
return radExpo((start+step), stop, step)
radExpo(12, 16, 1)
如果我将 if return 语句更改为
print liTotal
或者如果我用
调用函数print radExpo
它可以正常工作,但是如果我定期调用/返回它,它会返回错误的值,所以我不能使用返回的值。
【问题讨论】:
-
你实际上不需要 else
-
else不是递归回调函数吗?
-
每次通话只能返回一个或另一个,不能同时返回
-
我两个都不想要。我只希望 if 在满足条件时返回值 liTotal。
-
别担心你不会得到这两个,这是我的意思。
标签: python if-statement recursion return