[Python] 你的BMI是多少呢?

🎶博客主页:程序喵正在路上 的博客主页
🦋欢迎关注🖱点赞👍收藏🌟留言🐾
🦄本文由 程序喵正在路上 原创,CSDN首发!
💖系列专栏:Python学习
🌠首发时间:2022年4月28日
✅如果觉得博主的文章还不错的话,希望小伙伴们三连支持一下哦

要点:这是一个计算BMI并通过分支结构给出身体质量分类的实例。

前言
改革开放近 40 年,中国取得了世界瞩目的发展成就,人民生活水平显著提高、越来越多人开始关注“身体质量”,其中,肥胖程度最受关注。身体质量指数 (Body Mass Index,BMI) 是国际上常用的衡量人体肥胖程度和是否健康的重要标准,主要用于统计分析。肥胖程度的判断不能采用体重的绝对值,它天然与身高有关。因此,BMI 通过人体体重和身高两个数值获得相对客观的参数,并用这个参数所处范围衡量身体质量。

BMI 的定义如下:
    BMI = 体重(kg) / 身高2(m2)

例如,一个人身高 1.78 m、体重 67 kg,他的 BMI 值为 21.15.

BMI 值可以客观地衡量人的肥胖程度或健康程度。世界卫生组织根据全球人口体重统计认为,BMI 值低于 18.5 kg/m2 时 “过轻”,表明个体可能营养不良或者饮食无法保障;BMI 值高于 25 kg/m2 时 “过重”。我国卫生部也根据中国人体质给出了国内 BMI 参考值。更多 BMI 衛量标准如下表:

分类国际 BMI 值( kg/m2 )国内 BMI 值( kg/m2 )
偏瘦< 18.5< 18.5
正常18.5 ~ 2518.5 ~ 24
偏胖25 ~ 3024 ~ 28
肥胖≥30>28

本实例编写一个根据体重和身高计算 BMI 值的程序,同时输出国际和国内的BMI指标建议值。该问题的 IPO 描述如下。

输入:身高和体重值
处理:计算 BMI 值,并根据 BMI 指标分类找到合适类别
输出:打印指标分类信息

该实例的完整代码如下,请注意各判断条件及后面的注释。

height, weight = eval(input("请输入身高(米)和体重(公斤) [逗号隔开(英文格式)]:"))

bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who, dom = " ", " "

if bmi < 18.5:      # WHO 标准
    who = "偏瘦"
elif bmi < 25:
    who = "正常"
elif bmi < 30:
    who = "偏胖"
else:
    who = "肥胖"

if bmi < 18.5:      # 我国卫生部标准
    dom = "偏瘦"
elif bmi < 24:
    who = "正常"
elif bmi < 28:
    who = "偏胖"
else:
    who = "肥胖"

print("BMI 指标为:国际 '{0}',国内 '{0}'".format(who, dom))

程序运行结果如下:

请输入身高(米)和体重(公斤) [逗号隔开]:1.78, 67
BMI 数值为:21.15
BMI 指标为:国际 ‘正常’,国内 ‘正常’

上面的代码采用了多分支结构对 BMI 数值按照不同区间范围进行分类,这种采用 if-elif-else 分支语句进行程序设计的方式十分常见。对于需要同时打印国际和国内两套 BMI 标准,程序采用两个 if-elif-else 语句分别计算两类不同 BMI 值。这种做法的好处是代码清晰明了,容易调试。

下面我们将两套指标合成一个 if-elif-else 语句来实现。

height, weight = eval(input("请输入身高(米)和体重(公斤) [逗号隔开(英文格式)]:"))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))

who, dom = " ", " "
if bmi < 18.5:  
    who, dom = "偏瘦", "偏瘦"
elif 18.5 <= bmi < 24:
    who, dom = "正常", "正常"
elif 24 <= bmi < 25:
    who, dom = "正常", "偏胖"
elif 25 <= bmi < 28:
    who, dom = "偏胖", "偏胖"
elif 28 <= bmi < 30:
    who, dom = "偏胖", "肥胖"
else:
    who, dom = "肥胖", "肥胖"

print("BMI 指标为:国际 '{0}',国内 '{0}'".format(who, dom))

比较两种写法可以发现,if 语句的运用主要与程序编写者对问题的理解及算法设计有关,采用一组 if 语句将两套 BMI 指标融合在起, 这实际上是算法的改变。即使对专业程序员来说,程序的简洁性和可读性都比更少的代码行数重要,这里,推荐采用 第一种 方式编写程序。

拓展:中国居民膳食指南

《中国居民膳食指南》是 2016 年 5 月 13 日由国家卫生评生委项控局发布的指导中国居民饮食的权威资料。该指南针对2岁以上的所有储康人群提出 6 条核心推荐,分别为:食物多样,谷类为主;吃动平衡,健康体重:多吃水果、奶类、大豆;适量吃鱼、禽、蛋、瘦肉;少盐少油,控糖限酒:杜绝浪费、新兴食尚。

指南建议平均每天摄入 12 种以上食物,每周 25 种以上。各年龄段人群都应坚持日常身体活动,每周至少进行 5 天中等强度身体活动,累计 150 分钟以上。蔬莱水果是平衡膳食的重要组成部分,吃各种各样的奶制品,经常吃豆制品,适量吃坚果。鱼、禽、蛋和瘦肉摄入要适量。少吃肥肉、烟熏和腌制肉食品。成人每天食盐不超过 6 g,每天烹调油 25-30 g。足量饮水,成年人每天 7-8 杯,1500-1700ml,提倡饮用白开水和茶水。健康饮食,你做到了哪些?

🧸这次的分享就到这里啦,继续加油哦^^
🍭有出错的地方欢迎在评论区指出来,共同进步,谢谢啦

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序喵正在路上

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值