我有这段代码:请帮助我如何获得用户输入的等式。
from __future__ import division
pi = 3.14159265
g = 6.67428*(10**-11)
radius = raw_input("Enter Radius -->")
def display_results(radius , mass , velocity):
print "Radius of the planet" , radius/1000 ,"km"
print "Mass of the planet" , float(mass/10**21) ,"(10**21 kg)"
print "Escape velocity of the planet" , velocity/1000 , "(km/s)"
def escape_velocity(circumference , acceleration):
radius = circumference/(2*pi)
mass = (acceleration * radius ** 2)/g
vEscape = ((2*g*mass)/radius)**0.5
display_results(radius , mass , vEscape)
escape_velocity(40075000 , 10)
这是我应该做的: 使用有效的主线逻辑来获取用户输入,然后调用escape_velocity()函数来计算并显示最终结果。下面是从您的程序运行的示例应该是什么样的(** **文本是来自用户的示例输入):
Circumference (km) of planet? **38000**
Acceleration due to gravity (m/s^2)? **9.8**
Calculating the escape velocity...
Planet radius = 6047.9 km
Planet mass = 5370.7 x 10^21 kg
Escape velocity = 10.9 km/s
如何让用户输入一个数字,以便我的程序能够解决这个问题。 我需要有用户输入:
Circumference (km) of planet?
Acceleration due to gravity (m/s^2)?
非常感谢!!
答案 0 :(得分:2)
我按照您的要求询问用户输入,并使用以下代码显示您想要的结果:
from __future__ import division
import math
pi = 3.14159265
g = 6.67428*(10**-11)
#radius = raw_input("Enter Radius -->")
user_circum = raw_input("Circumference (km) of planet? ")
user_acc = raw_input("Acceleration due to gravity (m/s^2)?")
def display_results(radius , mass , velocity):
print "Radius of the planet" , radius ,"km"
print "Mass of the planet" , float(mass/10**15) ,"(10^21 kg)"
print "Escape velocity of the planet" , velocity/1000 , "(km/s)"
def escape_velocity(circumference , acceleration):
circumference = float(circumference)
acceleration = float(acceleration)
radius = circumference/(2*pi)
mass = (acceleration * radius ** 2)/g
vEscape = ((2*g*mass)/radius)**0.5
display_results(radius , mass , vEscape)
escape_velocity(user_circum, user_acc)
然而,等式计算中的一些数学似乎有点偏差。我会仔细检查那些方程式,但你看起来很漂亮!希望这会有所帮助。
答案 1 :(得分:0)
您已经拥有了让用户输入数字并将其分配给变量radius
(raw_input
行)的语法。
使用相同的语法来请求周长和加速度输入,然后使用接收用户输入的两个变量作为参数调用转义速度函数。 (在您的示例代码中,使用两个整数作为参数调用此函数,(40075000,10),因此您需要更改它。)
答案 2 :(得分:0)
您需要将半径转换为整数。因为raw_input函数以字符串值给出输出,因此你不能将str(radius)除以数字1000.你只需要像这样写 radius = raw_input(“输入半径 - >”) radius = int(radius) 希望这会对你有所帮助:)。
您可以查看有关raw_input here
的更多信息