我正在尝试建立该方程-h =(GMT ^ 2 /4π^ 2)1/3 -R-其中“ h”是轨道卫星的高度,G是重力常数,M是地球的质量,R是地球的半径。对于给定值为“ T”的用户,程序必须返回允许用户“ T”的轨道周期所需的高度(h)
到目前为止,我已经尝试编写方程式,随后定义相关的常数。
h=[math.pow(((G*M*math.pow(T,2))/(4*math.pow(Pi,2))),1/3)-R]
G=6.67*math.pow(10,-11)
M=5.97*math.pow(10,24)
R=6371
T=input('Period of Orbit (T)=',)
print(h)
将鼠标悬停在第一行旁边的警告三角形上时,将显示错误消息“未定义的名称...”,该错误消息将继续显示到列表G,M,T,Pi和R,均为未定义。尝试运行程序时,内核中会再次出现此错误。在此先感谢您的任何帮助。
答案 0 :(得分:0)
如果我猜对了您想要的东西,应该是这样的:
from math import pow, pi
R = 6371 # earth's radius
G = 6.67 * pow(10, -11) # gravitational constant
M = 5.97 * pow(10, 24) # earth's mass
# desired period
T = int(input('Period of Orbit (T)=',))
h = pow((G * M * pow(T,2)) / (4 * pow(pi,2)), 1/3) - R
print(f"Height needed: {h}")
我还添加了更多空白以提高可读性。我第二次建议定义一个函数,它看起来像:
from math import pow, pi
def calculate_orbit_height(period):
R = 6371 # earth's radius
G = 6.67 * pow(10, -11) # gravitational constant
M = 5.97 * pow(10, 24) # earth's mass
return pow((G * M * pow(period,2)) / (4 * pow(pi,2)), 1/3) - R
# desired period
T = int(input('Period of Orbit (T)=',))
print(f"Height needed: {calculate_orbit_height(T)}")
答案 1 :(得分:-2)
到目前为止,我已经注意到了几件事:
之后应该可以使用。Working example
编辑:正如Fred所指出的那样,方程式不必在列表中。