Python用户输入 - 如何在等式中使用?

时间:2013-10-16 22:31:14

标签: python input

我有这段代码:请帮助我如何获得用户输入的等式。

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)?

非常感谢!!

3 个答案:

答案 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)

您已经拥有了让用户输入数字并将其分配给变量radiusraw_input行)的语法。

使用相同的语法来请求周长和加速度输入,然后使用接收用户输入的两个变量作为参数调用转义速度函数。 (在您的示例代码中,使用两个整数作为参数调用此函数,(40075000,10),因此您需要更改它。)

答案 2 :(得分:0)

您需要将半径转换为整数。因为raw_input函数以字符串值给出输出,因此你不能将str(radius)除以数字1000.你只需要像这样写 radius = raw_input(“输入半径 - >”) radius = int(radius) 希望这会对你有所帮助:)。

您可以查看有关raw_input here

的更多信息