Calculateur d'IMC
Calculez l'Indice de Masse Corporelle avec des unités métriques et impériales.
Catégories d'IMC
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.