🛠️ToolsShed

Macro Calculator

Calculate daily carbohydrate, protein, and fat targets based on your calorie goal.

La calculatrice de macros calcule votre apport quotidien recommandé en trois macronutriments — protéines, glucides et lipides — en fonction de votre objectif calorique et de remise en forme. Les macronutriments sont les composants alimentaires fournissant de l'énergie.

Entrez votre objectif calorique quotidien, votre poids corporel et votre objectif de remise en forme principal. L'outil applique des ratios de macros basés sur des preuves : pour la prise de muscle, un objectif protéique plus élevé (environ 1,6-2,2g par kg de poids corporel) avec suffisamment de glucides et une consommation modérée de graisses.

Les objectifs de macros sont des directives, pas des règles absolues. La réponse individuelle varie, et beaucoup de gens constatent que suivre les macros pendant quelques semaines développe une conscience nutritionnelle suffisante pour manger intuitivement sans comptage strict.

Questions Fréquentes

Implémentation du Code

def calculate_macros(weight_kg: float, height_cm: float, age: int,
                     sex: str, activity: float, goal: str) -> dict:
    """
    Calculate TDEE and macronutrient targets using Mifflin-St Jeor BMR.
    sex: 'male' or 'female'
    activity: 1.2=sedentary, 1.375=light, 1.55=moderate, 1.725=active, 1.9=very active
    goal: 'lose' (-500 kcal), 'maintain', 'gain' (+300 kcal)
    """
    if sex == "male":
        bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age + 5
    else:
        bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age - 161

    tdee = bmr * activity
    adjustment = {"lose": -500, "maintain": 0, "gain": 300}.get(goal, 0)
    target_calories = tdee + adjustment

    # Macro splits (lose: 40/35/25, maintain: 35/40/25, gain: 30/45/25)
    splits = {"lose": (0.40, 0.35, 0.25), "maintain": (0.35, 0.40, 0.25), "gain": (0.30, 0.45, 0.25)}
    p_ratio, c_ratio, f_ratio = splits.get(goal, (0.35, 0.40, 0.25))

    protein_g = target_calories * p_ratio / 4
    carbs_g   = target_calories * c_ratio / 4
    fat_g     = target_calories * f_ratio / 9

    return {
        "bmr": round(bmr), "tdee": round(tdee),
        "target_calories": round(target_calories),
        "protein_g": round(protein_g), "carbs_g": round(carbs_g), "fat_g": round(fat_g),
    }

r = calculate_macros(70, 175, 30, "male", 1.55, "lose")
print(f"BMR             : {r['bmr']} kcal")
print(f"TDEE            : {r['tdee']} kcal")
print(f"Target Calories : {r['target_calories']} kcal")
print(f"Protein         : {r['protein_g']} g")
print(f"Carbs           : {r['carbs_g']} g")
print(f"Fat             : {r['fat_g']} g")

Comments & Feedback

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