You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python BMI计算器性别校验逻辑异常问题排查

BMI计算程序问题修复

核心问题

代码里的性别判断逻辑错误:你将用户输入转成小写enter_gender.lower()后,却去匹配大小写混合的("Male", "Female"),不管用户输入Male/Female还是小写的male/female,转小写后的字符串都不在这个元组里,所以每次都会执行quit(),直接退出程序。

修复后的代码

enter_gender = input("please enter the gender Male / Female: ")
# 转小写后匹配小写选项,避免大小写输入差异问题
if enter_gender.lower() not in ("male", "female"):
    quit()
user_weight = float(input("please enter your weight: "))
user_height = float(input("please enter your height in centimeters: ")) / 100
square_height = user_height ** 2  # 用幂运算写法更简洁
BMI = user_weight / square_height  # 用浮点除法保留精度,替代整数除法
print(f"your current BMI is {BMI:.1f}")  # 保留一位小数更直观
if BMI < 18.5:  # 修正为通用BMI健康阈值
    print("Your BMI is below the normal range")
elif BMI < 25:
    print("You are Healthy")
elif BMI <= 30:
    print("You are overweight")
else:
    print("You are obese")  # 补充超出30的情况判断

额外优化说明

  1. 用**幂运算替代重复乘法,代码更简洁
  2. 替换//整数除法为/浮点除法,避免BMI计算精度丢失
  3. 修正BMI判断阈值为通用健康标准(原12的阈值不符合常规标准)
  4. 修复打印语句的语法错误:比如Your are改为You are,移除多余的print关键字
  5. 补充了BMI超过30的肥胖情况判断

内容的提问来源于stack exchange,提问作者Joseph Ninan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:50:41