BMI Calculator
使用公制和英制单位计算体质指数。
BMI 分类
体重不足< 18.5
正常体重18.5 – 24.9
超重25 – 29.9
肥胖≥ 30
BMI 计算器计算您的身体质量指数——一个广泛使用的由身高和体重得出的筛查数字。BMI = 体重(kg) / 身高²(m²)。它将结果分为偏轻(18.5 以下)、正常体重(18.5–24.9)、超重(25–29.9)和肥胖(30 及以上),为医疗专业人员和个人提供快速参考。
以公制(cm/kg)或英制(ft/lb)单位输入您的身高和体重。该工具立即计算您的 BMI,并告诉您属于哪个类别以及与您身高对应正常 BMI 的体重范围。
BMI 是一个有用的人群级筛查工具,但有局限性:它不直接测量体脂,可能会对运动员(高肌肉量)或老年人(低肌肉量)产生错误分类。请始终与医疗提供者讨论您的结果以进行全面的健康评估。
常见问题
代码实现
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.