我正在进行的练习应该显示以下输出:
Enter name of data file: gps.txt --------------------------------------------------------------------------- Time Latitude Longitude Distance Pace (hh:mm:ss) (deg) (deg) (miles) (min/miles) --------------------------------------------------------------------------- 10:57:32 38.898556 -77.037852 ***** ***** 11:00:45 38.897147 -77.043934 0.341 9.421 11:03:28 38.896432 -77.052102 0.442 6.141 11:05:34 38.897411 -77.047212 0.272 7.730 11:08:58 38.898999 -77.040000 0.403 8.431 11:13:54 38.909032 -77.036894 0.713 6.915 11:19:24 38.920011 -77.029782 0.850 6.471 11:25:47 38.931111 -77.025432 0.802 7.957 --------------------------------------------------------------------------- Your fastest speed was 6 minutes and 9 seconds per mile.
当我在这里运行程序时,输出是
Enter name of data file: gps.txt --------------------------------------------------------------------------- Time Latitude Longitude Distance Pace (hh:mm:ss) (deg) (deg) (miles) (min/miles) --------------------------------------------------------------------------- 10:57:32 38.898556 -77.037852 ***** ***** 11:00:45 38.897147 -77.043934 0.341 1935.282 11:03:28 38.896432 -77.052102 0.442 1500.225 11:05:34 38.897411 -77.047212 0.272 2449.924 11:08:58 38.898999 -77.040000 0.403 1658.896 11:13:54 38.909032 -77.036894 0.713 944.564 11:19:24 38.920011 -77.029782 0.850 799.326 11:25:47 38.931111 -77.025432 0.802 854.834 --------------------------------------------------------------------------- Your fastest speed was 854
正如你所看到的,几乎所有事情都是正确的,除了速度和底部最快的速度。我正在阅读的文件看起来像这样:
10:57:32 38.898556 -77.037852 11:00:45 38.897147 -77.043934 11:03:28 38.896432 -77.052102 11:05:34 38.897411 -77.047212 11:08:58 38.898999 -77.040000 11:13:54 38.909032 -77.036894 11:19:24 38.920011 -77.029782 11:25:47 38.931111 -77.025432
答案 0 :(得分:0)
主要问题似乎是您已将“this_pace”设置为“已过去的时间”,而无需在计算中加入距离。
将来,添加跟踪打印语句以跟踪执行流程和计算的数据。例如,在主计算循环中打印和检查每个变量,会立即显示问题行。
另外,请考虑增量开发:一次添加几行或一个循环。在添加更多内容之前进行调试。
答案 1 :(得分:0)
我也可以看到:
current_dist = float(current_time - previous_time)
time_elapsed = abs(((current_dist - previous_dist)/ 60) / distance)
this_pace = time_elapsed
在我看来,前两个是倒退的。第一个计算经过的时间。第二个计算速度;它应该只计算距离,并在this_pace线上计算速度。