You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修正田径跑步规划函数while循环的多行输出异常问题

修复跑道跑步规划函数的循环逻辑

原代码的问题在于循环内直接计算了总圈数,没有逐圈累加记录,导致仅输出最终的一行结果。要实现逐圈记录直到覆盖目标距离,需要分两步处理:先记录所有完整圈,再处理剩余的不足一圈的距离。

修改后的代码如下:

import math

LAP_DISTANCE = 400

def plan_track_run(a_distance):
    count = 0
    total = 0
    r_output = ""
    
    # 先处理所有完整的圈
    while total + LAP_DISTANCE <= a_distance:
        count += 1
        total += LAP_DISTANCE
        r_output += f"lap #{count} time ____ s in {count:.2f} x {LAP_DISTANCE}m = {total:.2f}m\n"
    
    # 处理剩余的不足一圈的距离
    if total < a_distance:
        remaining_laps = (a_distance - total) / LAP_DISTANCE
        count += remaining_laps
        total = a_distance
        r_output += f"lap #{math.ceil(count)} time ____ s in {count:.2f} x {LAP_DISTANCE}m = {total:.2f}m\n"
    
    return r_output.strip()

验证效果

  • 当a_distance=200时,输出:
lap #1 time ____ s in 0.50 x 400m = 200.00m
  • 当a_distance=1500时,输出:
lap #1 time ____ s in 1.00 x 400m = 400.00m
lap #2 time ____ s in 2.00 x 400m = 800.00m
lap #3 time ____ s in 3.00 x 400m = 1200.00m
lap #4 time ____ s in 3.75 x 400m = 1500.00m

逻辑说明

  1. 完整圈循环:每次累加1圈,直到再加一圈就会超过目标距离,确保每一圈都是完整的400米,并逐行记录。
  2. 剩余距离处理:计算剩余距离对应的圈数比例,更新总圈数和总距离,添加最后一行记录。
  3. 使用strip()去除末尾多余的换行符,让输出更整洁。

内容的提问来源于stack exchange,提问作者M.J.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:27:31