def calculate_bmi(weight, height):
"""计算BMI指数"""
if height <= 0:
raise ValueError("身高必须是正数")
if weight < 0:
raise ValueError("体重不能为负数")
return weight / (height ** 2)
def get_bmi_category(bmi):
"""根据BMI指数返回对应的健康类别"""
if bmi < 18.5:
return "偏瘦"
elif 18.5 <= bmi < 24:
return "正常"
elif 24 <= bmi < 28:
return "过重"
elif 28 <= bmi < 30:
return "轻度肥胖"
elif 30 <= bmi < 35:
return "中度肥胖"
else:
return "重度肥胖"
def main():
try:
# 获取用户输入
weight = float(input("请输入您的体重(kg):30 "))
height = float(input("请输入您的身高(m): 138"))
# 计算BMI
bmi = calculate_bmi(weight, height)
# 获取健康类别
category = get_bmi_category(bmi)
# 输出结果
print(f"\n您的BMI指数为: {bmi:.2f}")
print(f"健康类别: {category}")
except ValueError as e:
print(f"输入错误: {e}")
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
main()
ZGVmIGNhbGN1bGF0ZV9ibWkod2VpZ2h0LCBoZWlnaHQpOgogICAgIiIi6K6h566XQk1J5oyH5pWwIiIiCiAgICBpZiBoZWlnaHQgPD0gMDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCLouqvpq5jlv4XpobvmmK/mraPmlbAiKQogICAgaWYgd2VpZ2h0IDwgMDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCLkvZPph43kuI3og73kuLrotJ/mlbAiKQogICAgcmV0dXJuIHdlaWdodCAvIChoZWlnaHQgKiogMikKCmRlZiBnZXRfYm1pX2NhdGVnb3J5KGJtaSk6CiAgICAiIiLmoLnmja5CTUnmjIfmlbDov5Tlm57lr7nlupTnmoTlgaXlurfnsbvliKsiIiIKICAgIGlmIGJtaSA8IDE4LjU6CiAgICAgICAgcmV0dXJuICLlgY/nmKYiCiAgICBlbGlmIDE4LjUgPD0gYm1pIDwgMjQ6CiAgICAgICAgcmV0dXJuICLmraPluLgiCiAgICBlbGlmIDI0IDw9IGJtaSA8IDI4OgogICAgICAgIHJldHVybiAi6L+H6YeNIgogICAgZWxpZiAyOCA8PSBibWkgPCAzMDoKICAgICAgICByZXR1cm4gIui9u+W6puiCpeiDliIKICAgIGVsaWYgMzAgPD0gYm1pIDwgMzU6CiAgICAgICAgcmV0dXJuICLkuK3luqbogqXog5YiCiAgICBlbHNlOgogICAgICAgIHJldHVybiAi6YeN5bqm6IKl6IOWIgoKZGVmIG1haW4oKToKICAgIHRyeToKICAgICAgICAjIOiOt+WPlueUqOaIt+i+k+WFpQogICAgICAgIHdlaWdodCA9IGZsb2F0KGlucHV0KCLor7fovpPlhaXmgqjnmoTkvZPph40oa2cpOjMwICIpKQogICAgICAgIGhlaWdodCA9IGZsb2F0KGlucHV0KCLor7fovpPlhaXmgqjnmoTouqvpq5gobSk6IDEzOCIpKQogICAgICAgIAogICAgICAgICMg6K6h566XQk1JCiAgICAgICAgYm1pID0gY2FsY3VsYXRlX2JtaSh3ZWlnaHQsIGhlaWdodCkKICAgICAgICAKICAgICAgICAjIOiOt+WPluWBpeW6t+exu+WIqwogICAgICAgIGNhdGVnb3J5ID0gZ2V0X2JtaV9jYXRlZ29yeShibWkpCiAgICAgICAgCiAgICAgICAgIyDovpPlh7rnu5PmnpwKICAgICAgICBwcmludChmIlxu5oKo55qEQk1J5oyH5pWw5Li6OiB7Ym1pOi4yZn0iKQogICAgICAgIHByaW50KGYi5YGl5bq357G75YirOiB7Y2F0ZWdvcnl9IikKICAgICAgICAKICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6CiAgICAgICAgcHJpbnQoZiLovpPlhaXplJnor686IHtlfSIpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoZiLlj5HnlJ/plJnor686IHtlfSIpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgbWFpbigp