🛠️ToolsShed

Calculateur de Zones de Fréquence Cardiaque

Calculez vos 5 zones d'entraînement de fréquence cardiaque selon votre âge et fréquence cardiaque au repos.

La calculatrice de zones de fréquence cardiaque identifie vos cinq zones d'entraînement en fonction de votre âge et, optionnellement, de votre fréquence cardiaque au repos mesurée. S'entraîner dans des zones spécifiques permet de cibler différentes adaptations physiologiques.

Entrez votre âge et l'outil estime votre Fréquence Cardiaque Maximale (FCM) en utilisant la formule la plus courante : 220 moins l'âge. Si vous connaissez votre FCM réelle d'un test de condition physique, entrez-la pour des zones plus précises.

Pour utiliser efficacement les zones de FC, portez un moniteur de FC pendant les entraînements et essayez de rester dans la zone cible. La plupart des athlètes récréatifs bénéficient de passer la majorité de leur temps d'entraînement dans les zones 1-2.

Questions Fréquentes

Implémentation du Code

def calculate_hr_zones(age: int, resting_hr: int = 60, method: str = "fox") -> dict:
    """
    Calculate heart rate training zones.
    method: 'fox' (220 - age), 'tanaka' (208 - 0.7 * age), 'karvonen' (uses resting HR)
    """
    if method == "tanaka":
        max_hr = 208 - 0.7 * age
    else:
        max_hr = 220 - age

    if method == "karvonen":
        hrr = max_hr - resting_hr  # Heart Rate Reserve
        zones = {
            "Zone 1 (Recovery)":  (resting_hr + 0.50 * hrr, resting_hr + 0.60 * hrr),
            "Zone 2 (Aerobic)":   (resting_hr + 0.60 * hrr, resting_hr + 0.70 * hrr),
            "Zone 3 (Tempo)":     (resting_hr + 0.70 * hrr, resting_hr + 0.80 * hrr),
            "Zone 4 (Threshold)": (resting_hr + 0.80 * hrr, resting_hr + 0.90 * hrr),
            "Zone 5 (Max)":       (resting_hr + 0.90 * hrr, max_hr),
        }
    else:
        zones = {
            "Zone 1 (Recovery)":  (0.50 * max_hr, 0.60 * max_hr),
            "Zone 2 (Aerobic)":   (0.60 * max_hr, 0.70 * max_hr),
            "Zone 3 (Tempo)":     (0.70 * max_hr, 0.80 * max_hr),
            "Zone 4 (Threshold)": (0.80 * max_hr, 0.90 * max_hr),
            "Zone 5 (Max)":       (0.90 * max_hr, max_hr),
        }

    print(f"Age: {age}, Max HR: {max_hr:.0f} bpm, Method: {method}")
    for name, (lo, hi) in zones.items():
        print(f"  {name}: {lo:.0f} - {hi:.0f} bpm")
    return zones

calculate_hr_zones(age=30, resting_hr=65, method="karvonen")

Comments & Feedback

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