浮动不可调用

时间:2014-02-07 04:51:01

标签: python python-3.x

当我尝试对质量上的重力进行计算时,我得到一个float对象是无法调用的错误。

def grav():
    mass = float(input('Enter a mass[kg]: '))
    dist = float(input('Enter a distance from the surface of earth [m]: '))
    rad = 6.3781*10**6
    me = 5.97219*10**24
    gr = 6.67300*10**-11
    f = ((gr((me)*(mass)))/((rad)+(dist)**2))
    return f

grav()

它在计算所有内容的部分给出浮动错误

2 个答案:

答案 0 :(得分:3)

gr((me)*(mass))

以上尝试调用gr就好像它是一个函数。这只是一个常数。无论如何,不​​需要所有这些括号。

gr * me * mass / (...)

你确实在分母中有一个错误。您需要除以(rad+dist)**2,而不是rad + (dist**2)(您现在正在做的)。

f = gr * me * mass / (rad + dist)**2

这就是你所需要的一切。

如果我可以提出建议,请使您的变量名称更加自我记录。我能理解你的代码,因为我认识到这个公式,但不是每个人都会有这个优势。

force = G * MASS_OF_EARTH * mass / (EARTH_RADIUS + distance_from_earth)**2

易于阅读,不是吗?你不必是这个详细,但是太多太好了。在科学计算中过度缩写可能很诱人,但我真的建议反对它。必要时要简洁,但始终要自我记录。

答案 1 :(得分:0)

更改第7行

f = ((gr*((me)*(mass)))/((rad)+(dist)**2))

或者您可以使用

简化公式
f = gr*(me*mass)/(rad+dist)**2

它会起作用。