如何从距离计算速度作为浮点数和时间作为时间增量

How to work out speed from distance as a float and time as a timedelta

如果我有一个以 km 为单位的距离 float 变量,以及一个 timedelta 时间变量,我如何计算 KM/H 中的速度?我不确定如何将 timedelta 更改为浮动小时数。一个例子是:

distance = 0.966757
time = timedelta('0 days 00:01:04')

输出约为 54Kmh

将“1:04”转换为秒

distance = 0.966757

time = datetime.timedelta(0,64)

distance/time.total_seconds()
>>0.015105578125

所以你有速度 distance/second

每小时乘以 3600

3600*distance/time.total_seconds()
>>54.380081249999996

感谢 'total_seconds' 小伙伴们的提示。虽然,在这种情况下我得到了

time.total_seconds() == time.seconds
>>True

首先,您必须使用正确的 arguments:

初始化您的 timedelta
time = timedelta(days=0,hours=0,minutes=1,seconds=4)

timedelta 有一个方法 total_seconds() 所以你获取:

total_seconds = time.total_seconds()

除以 3600,得到小时数:

hours = total_seconds/3600.0

(在 中除以 3600int)就足够了)。

然后用距离(公里)除以时间(小时)计算速度:

speed = distance/hours # unit: kmph

使用distance / ( time.total_seconds() / 3600.0 )(假设距离已经以公里为单位)。