当我尝试对质量上的重力进行计算时,我得到一个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()
它在计算所有内容的部分给出浮动错误
答案 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
它会起作用。