# Marathon Training Plan: Beginner | 4 days/week | 1 quality workout/week | Power, Pace, HR
weeks = 16
training_days = [‘Tue’, ‘Thu’, ‘Sat’, ‘Sun’]
plan = []
for week in range(1, weeks + 1):
week_plan = {}
week_plan[‘Week’] = week
# Long Run (Sun) progression
long_run_distance = min(10 + (week – 1), 20) # Progress from 10 to 20 miles
# Workout (Tue) – One per week with alternating focus
if week % 4 == 0:
workout = “Progression Run – 3-6 miles, last 1-2 miles at Marathon Pace (Pace/HR)”
elif week % 3 == 0:
workout = “Tempo Run – 3 miles at Half Marathon Pace (Power/Pace)”
elif week % 2 == 0:
workout = “Intervals – 4-6 x 3 min @ 10K effort with jog recovery (Power/HR)”
else:
workout = “Fartlek – 5 x 2 min on/2 min off @ strong effort (HR)”
week_plan[‘Tue’] = workout
week_plan[‘Thu’] = “Easy Run – 3-5 miles (HR < 75%)" week_plan['Sat'] = "Short Easy Run – 2-4 miles or Rest" week_plan['Sun'] = f"Long Run – {long_run_distance} miles (HR < 75%, Build Endurance)" # Weekly Volume Cap weekly_hours = min(2 + (week * 0.2), 5) # Builds from 2 to 5 hours/week week_plan['Estimated Hours'] = round(weekly_hours, 1) plan.append(week_plan) # Output for week in plan: print(f"Week {week['Week']}:") for day in training_days: print(f" {day}: {week[day]}") print(f" Total Time: ~{week['Estimated Hours']} hrs\n")