🛠️ToolsShed

Calculateur d'IMC

Calculez l'Indice de Masse Corporelle avec des unités métriques et impériales.

Catégories d'IMC

Insuffisance pondérale< 18,5
Poids normal18,5 – 24,9
Surpoids25 – 29,9
Obèse≥ 30

La calculatrice d'IMC calcule votre Indice de Masse Corporelle — un nombre de dépistage largement utilisé dérivé de votre taille et de votre poids. IMC = poids (kg) / taille² (m²). Il classe les résultats en Sous-poids (moins de 18,5), Poids normal (18,5–24,9), Surpoids (25–29,9) et Obèse (30 et plus).

Entrez votre taille et votre poids en unités métriques (cm/kg) ou impériales (ft/lb). L'outil calcule instantanément votre IMC et vous indique dans quelle catégorie vous vous trouvez ainsi que la plage de poids correspondant à un IMC normal pour votre taille.

L'IMC est un outil de dépistage utile au niveau de la population, mais il a des limites : il ne mesure pas directement la graisse corporelle et peut mal classer les athlètes ou les personnes âgées. Discutez toujours de vos résultats avec un professionnel de santé.

Questions Fréquentes

Implémentation du Code

def calculate_bmi(weight_kg: float, height_m: float) -> float:
    """Calculate Body Mass Index: BMI = weight(kg) / height(m)^2"""
    return weight_kg / (height_m ** 2)

def bmi_from_imperial(weight_lbs: float, height_in: float) -> float:
    """Calculate BMI from imperial units."""
    return (weight_lbs / (height_in ** 2)) * 703

def classify_bmi(bmi: float) -> str:
    """Classify BMI using WHO categories."""
    if bmi < 18.5:
        return "Underweight"
    elif bmi < 25.0:
        return "Normal weight"
    elif bmi < 30.0:
        return "Overweight"
    elif bmi < 35.0:
        return "Obese (Class I)"
    elif bmi < 40.0:
        return "Obese (Class II)"
    else:
        return "Obese (Class III)"

# Examples
people = [
    ("Person A", 55, 1.70),
    ("Person B", 70, 1.75),
    ("Person C", 90, 1.75),
    ("Person D", 110, 1.75),
    ("Person E", 50, 1.80),
]

print(f"{'Name':<12} {'Weight':>8} {'Height':>7} {'BMI':>6}  {'Category'}")
print("-" * 55)
for name, w, h in people:
    bmi = calculate_bmi(w, h)
    print(f"{name:<12} {w:>7} kg {h:>5} m {bmi:>6.1f}  {classify_bmi(bmi)}")

# Imperial example
bmi_imp = bmi_from_imperial(154, 68)  # 154 lbs, 5'8"
print(f"\nImperial: 154 lbs / 68 in → BMI {bmi_imp:.1f} ({classify_bmi(bmi_imp)})")

Comments & Feedback

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