🛠️ToolsShed

跑步配速计算器

计算任意距离的跑步配速、速度、时间和距离。

Unit
::

跑步配速计算器在配速(每公里或每英里分钟数)、速度(km/h 或 mph)以及常见比赛距离的完赛时间之间进行转换。这是赛事规划、训练处方和跨不同距离比较成绩的重要工具。

输入三个变量中的任意两个——距离、时间和配速——工具计算第三个。您也可以输入比赛(5K、10K、半程马拉松或全程马拉松)的目标完赛时间,工具告诉您实现它所需的每公里和每英里配速。

了解您的配速是避免在比赛开始时跑得太快(这是导致后半程精疲力竭的常见错误)以及以准确的目标配速安排间歇训练课的关键。

常见问题

代码实现

def pace_to_speed(pace_min_per_km):
    """Convert pace (min/km) to speed (km/h)."""
    return 60 / pace_min_per_km

def speed_to_pace(speed_km_h):
    """Convert speed (km/h) to pace (min/km)."""
    return 60 / speed_km_h

def pace_min_km_to_min_mile(pace_min_per_km):
    """Convert pace from min/km to min/mile."""
    return pace_min_per_km * 1.60934

def finish_time_seconds(distance_km, pace_min_per_km):
    """Calculate finish time in seconds."""
    return distance_km * pace_min_per_km * 60

def format_time(total_seconds):
    """Format seconds as H:MM:SS."""
    total_seconds = int(round(total_seconds))
    h = total_seconds // 3600
    m = (total_seconds % 3600) // 60
    s = total_seconds % 60
    if h > 0:
        return f"{h}:{m:02d}:{s:02d}"
    return f"{m}:{s:02d}"

def format_pace(pace_decimal_minutes):
    """Format decimal minutes as M:SS per km."""
    m = int(pace_decimal_minutes)
    s = round((pace_decimal_minutes - m) * 60)
    if s == 60:
        m += 1; s = 0
    return f"{m}:{s:02d}"


# Standard race distances in km
RACES = {
    "5K":           5.0,
    "10K":          10.0,
    "Half Marathon": 21.0975,
    "Marathon":     42.195,
}

pace_min_km = 5.5  # e.g., 5:30 per km
print(f"Pace: {format_pace(pace_min_km)} /km")
print(f"Speed: {pace_to_speed(pace_min_km):.2f} km/h")
print(f"Pace in min/mile: {format_pace(pace_min_km_to_min_mile(pace_min_km))}")
print()

print("Race finish times:")
for race, dist in RACES.items():
    secs = finish_time_seconds(dist, pace_min_km)
    print(f"  {race:<16} {format_time(secs)}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.