将用户的速度(公里/小时)转换为每公里的分钟数

时间:2018-03-13 19:40:37

标签: python-3.x

我希望以km / h转换用户的速度并显示所需的时间。例如,如果用户的输入是15公里/小时,那么它应该显示00.04.00,因为以这个速度跑一公里需要4分钟。

我无法弄清楚数学。到目前为止,我唯一发现的是(距离(1)/ km / h(15))/ 60给出了4的正确结果。但是,如果我以9公里/小时的速度计算结果,结果来了回到6.66,我知道时间应该是00:06:40。我只是不知道如何正确转换它。

抱歉是新手。

编辑。我能够在一些帮助下解决这个问题。这是我的代码

def inputNumber(message):
    while True:
        try:
            user_input = float(input(message))
        except ValueError:
            print("Please enter an appropriate value. For example, 15: ")
            continue
        else:
            return user_input

speed = inputNumber("Enter your running speed in km/h then this program will calculate minutes per kilometer: ")
while speed < 0:
    speed = inputNumber("Please reenter an appropriate value: ")
distance = 1  # 1 kilometer

seconds_speed = (distance / speed * 60)*60
minutes_speed = int((seconds_speed//60))
print("At that pace you'd run 1 kilometer in",
      minutes_speed,'minutes and',round(seconds_speed % 60),'seconds')

1 个答案:

答案 0 :(得分:2)

你不会问Python特有的东西,但是由于它标记的方式,我会给你一个python相关的答案。

def calculate_duration(speed_in_kmh, distance_in_km=1):
    speed_in_ms = speed_in_kmh / 3.6
    distance_in_m = distance_in_km * 1000

    duration_in_s = distance_in_m / speed_in_ms

    return datetime.timedelta(seconds=duration_in_s)

>>> calculate_duration(15)
0:04:00
>>> calculate_duration(30)
0:02:00
>>> calculate_duration(60)
0:01:00
>>> calculate_duration(120)
0:00:30

这利用了Pythons timedelta objects并使用str() on those objects