Python 3.4放射性同位素使用函数,列表和循环进行衰减

时间:2017-04-28 17:36:35

标签: python-3.x

有人可以帮我弄清楚如何逐日追踪腐烂活动。我相信我需要一个开放的清单。这是等式class Proxy: def __init__(self, obj): self.obj = obj def __getattr__(self, attr): return getattr(self.obj, attr) def __add__ (...): ... def __getitem__(...): ... ,其中:

  • Ad = Ad - 1*e - (decayConstant / isotope-half-life)是一天结束时的同位素活动Ad
  • d是一天末Ad-1(前一天)的同位素先前活动,
  • d-1是初始活动。

因此,第1天结束时的活动为A0,在第2天结束时, A1 = A0 * e -(decayConstant / isotope-half-life),等等。

A2 = A1 * e - (decayConstant / isotope-half-life)

代码的位置给我一个错误,不支持的操作数为' float'和'功能'。 任何帮助将不胜感激,谢谢。我正在编程课程的介绍中,所以我提前为我缺乏编程知识而道歉。

1 个答案:

答案 0 :(得分:0)

问题是由safe_activity_level函数中实现的变量天引起的。因为它用于使用表达式safe_activity_level来计算Ao * math.e**(-(decay_constant*days/(half_life)))

def safe_activity_level(Ao,days,half_life):
safe_activity_level = Ao * math.e**(-(decay_constant*days/(half_life)))
return safe_activity_level

变量days不是整数或字符串,因为你调用传递函数的变量。

第55行:

safe = safe_activity_level(Ao,safe_activity_level,half_life)

safe_activity_level也是函数的名称,因此,它将函数作为变量days传递。

最后, 这意味着变量days是一个函数,而不是我之前所说的整数/字符串。

希望我帮助过!

由于myy rep低于50,我无法回复,但我想注意你通过添加()来调用函数

这意味着,您应该按math.exp(XXX)而不是math.exp**XXX调用math.exp。