【发布时间】:2014-03-07 22:12:25
【问题描述】:
好的,我用递归函数做了一个函数,如下。
global totalExposure
totalExposure = 0
def f(x):
import math
return 10 * math.e**(math.log(0.5)/5.27 * x)
def radiationExposure(start, stop, step):
time = (stop-start)
newStart = start+step
if(time!=0):
radiationExposure(newStart, stop, step)
global totalExposure
radiation = f(start) * step
totalExposure += radiation
return totalExposure
else:
return totalExposure
现在,当我输入整数值时,该函数可以正常工作。
rad = radiationExposure(0, 5, 1)
# rad = 39.1031878433
但是,当我输入小数时,我的函数给出了错误的值。 那么,如何让我的函数也可以使用小数呢?
例如:
rad = radiationExposure(0, 4, 0.25)
您的输出: 1217.5725783047335 正确的输出: 1148.6783342153556
【问题讨论】:
-
你期望输出是什么,输出有什么问题?
-
只是提示,您应该将
import放在开头,这样就不会在每次函数运行时都调用它... -
@aj8uppal 无论语句运行多少次,实际只会发生一次导入。 Python 不会重新导入已经导入的模块。
-
不,我收到
70.7212242558 -
在递归函数中使用全局变量有点错过递归点。