BMI计算和一点想法

今天体测显示偏胖,不太信,于是拿自己数据来计算,结果居然真的偏胖,呜呜呜,上代码:

# BMI(身体质量指数)一般指身体质量指数
# 身体质量指数,是BMI(Body Mass Index )指数,简称体质指数,
# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
# 计算公式为:BMI=体重÷身高**2。(体重单位:千克;身高单位:米。)
# BMI(身体质量指数)一般指身体质量指数
# 身体质量指数,是BMI(Body Mass Index )指数,简称体质指数,
# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
# 计算公式为:BMI=体重÷身高**2。(体重单位:千克;身高单位:米。)
hight = float(input("输入您的身高(单位:米):"))
weight = float(input("输入您的体重(单位:千克):"))
BMI = weight / hight ** 2  ##单位kg/m**2
print(f"基于您输入的数字,您的BMI为{BMI}")
# 中国成人正常的BMI应在18.5-23.9之间,如果小于18.5为体重不足,
# 如果大于等于24为超重,大于等于28为肥胖。
if BMI < 18.5:
    print('pian')
elif 23.9 > BMI > 18.5:
    pass
elif BMI > 23.9:
    pass

在实际使用上来看,输入的时候总是把身高输入为 cm,所以得设计一个防呆设计:加入if判断,当输入身高超过一定值时自动修改,引入time增加趣味。

import time
hight = eval(input("输入您的身高(单位:米):"))
weight = eval(input("输入您的体重(单位:千克):"))
if hight>=100:
    hight/=100.0
    print(f"单位为m,请问您是否想输入:{hight}m")
print("正在为你生成")
time.sleep(3)
BMI = weight / hight ** 2  ##单位kg/m**2
print(f"基于您输入的数字,您的BMI为{BMI}")
# 中国成人正常的BMI应在18.5-23.9之间,如果小于18.5为体重不足,
# 如果大于等于24为超重,大于等于28为肥胖。
if BMI < 18.5:
    print('体重过低')
elif 23.9 > BMI > 18.5:
    print("您的体重正常,请保持")
elif BMI > 23.9:
    print('超重')

代码结果如下:

 调用ai写成函数,简化结构:
import time

def get_bmi_category(bmi):
    """根据BMI值返回体重分类"""
    if bmi < 18.5:
        return "体重过低"
    elif 18.5 <= bmi < 23.9:
        return "您的体重正常,请保持"
    else:
        return "超重"

def calculate_bmi(height, weight):
    """计算BMI值"""
    return weight / (height ** 2)

def get_height():
    """获取用户输入的身高,并转换为米"""
    height = eval(input("输入您的身高(单位:米):"))
    if height >= 100:
        height /= 100.0
        print(f"单位为m,请问您是否想输入:{height}m")
    return height

def get_weight():
    """获取用户输入的体重"""
    return eval(input("输入您的体重(单位:千克):"))

def main():
    """主函数"""
    height = get_height()
    weight = get_weight()
    print("正在为你生成...")
    time.sleep(3)
    bmi = calculate_bmi(height, weight)
    print(f"基于您输入的数字,您的BMI为{bmi:.2f}")
    category = get_bmi_category(bmi)
    print(category)

if __name__ == "__main__":
    main()

代码说明(ai)

  1. 函数拆分

    • get_height():获取用户输入的身高,并处理单位转换。

    • get_weight():获取用户输入的体重。

    • calculate_bmi():计算BMI值。

    • get_bmi_category():根据BMI值返回体重分类。

    • main():主函数,调用其他函数完成逻辑。

  2. 代码结构

    • 每个函数只负责一个明确的任务,符合单一职责原则。

    • 主函数 main() 负责调用其他函数,逻辑清晰。

  3. 用户体验

    • 输入身高时,自动检测单位并提示用户。

    • 输出BMI值时,保留两位小数,更美观。


示例运行

输入:
输入您的身高(单位:米):175
单位为m,请问您是否想输入:1.75m
输入您的体重(单位:千克):70
输出:
正在为你生成...
基于您输入的数字,您的BMI为22.86
您的体重正常,请保持

优点

  1. 可读性:代码逻辑清晰,易于理解。

  2. 可维护性:每个函数独立,修改或扩展功能更方便。

  3. 复用性:函数可以单独调用,方便在其他地方复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值