一、"身体质量指数BMI"问题分析

1.1 身体质量指数BMI

BMI:对身体质量的刻画

  • BMI:Body Mass Index:国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析

  • 定义:\(BMI = 体重 (kg) / 身高^2 (m^2)\)

  • 实例:体重 72 kg,身高 1.75 m

    • BMI 值是 23.5
  • 这个值是否健康呢?

国际:世界卫生组织 国内:国家卫生健康委员会

分类 国际BMI值\((kg/m^2)\) 国内BMI值\((kg/m^2)\)
偏瘦 <18.5 <18.5
正常 18.5 ~ 25 18.5 ~ 24
偏胖 25 ~ 30 24 ~ 28
肥胖 ≥30 ≥28

1.2 问题需求

-输入:给定体重和身高值

-输出:BMI指标分类信息(国际和国内)

二、"身体质量指数BMI"实例讲解

2.1 身体质量指标BMI

思路方法

  • 难点在于同时输出国际和国内对应的分类
  • 思路1:分别计算并给出国际和国内BMI分类
  • 思路2:混合计算并给出国际和国内BMI分类
分类 国际BMI值\((kg/m^2)\) 国内BMI值\((kg/m^2)\)
偏瘦 <18.5 <18.5
正常 18.5 ~ 25 18.5 ~ 24
偏胖 25 ~ 30 24 ~ 28
肥胖 ≥30 ≥28

2.1.1 国际

# CalBMIv1.py

height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi)) who = ""
if bmi < 18.5:
who = "偏瘦"
elif 18.5 <= bmi < 25:
who = "正常"
elif 25 <= bmi < 30:
who = "偏胖"
print("BMI 指标为:国际'{0}'".format(who))
请输入身高(米)和体重\(公斤)[逗号隔开]: 1.8,70
BMI 数值为:21.60
BMI 指标为:国际'正常'

2.1.2 国内

# CalBMIv2.py

height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi)) nat = ""
if bmi < 18.5:
nat = "偏瘦"
elif 18.5 <= bmi < 24:
nat = "正常"
elif 25 <= bmi < 38:
nat = "偏胖"
print("BMI 指标为:国内'{0}'".format(nat))
请输入身高(米)和体重\(公斤)[逗号隔开]: 1.8,70
BMI 数值为:21.60
BMI 指标为:国内'正常'
# CalBMIv3.py

height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who, nat = "", ""
if bmi < 18.5:
who, nat = "偏瘦", "偏瘦"
elif 18.5 <= bmi < 24:
who, nat = "正常", "正常"
elif 24 <= bmi < 25:
who, nat = "正常", "偏胖"
elif 25 <= bmi < 28:
who, nat = "偏胖", "偏胖"
elif 28 <= bmi < 30:
who, nat = "偏胖", "肥胖"
else:
who, nat = "肥胖", "肥胖"
print("BMI 指标为:国际'{0}', 国内'{1}'".format(who, nat))
请输入身高(米)和体重\(公斤)[逗号隔开]: 1.8,70
BMI 数值为:21.60
BMI 指标为:国际'正常', 国内'正常'

三、"身体质量指数BMI"举一反三

关注多分支条件的组合

  • 多分支条件之间的覆盖是重要问题
  • 程序可运行,但不正确,要注意多分支
  • 分支结构是程序的重要框架,读程序先看分支

最新文章

  1. cocos2d-js 学习笔记 --安装调试(2)
  2. wifi的country code
  3. Quartz Job基本示例
  4. Keepalived虚拟ip
  5. Matalab IFS分形算法
  6. 【POJ】A New Stone Game(博弈论)
  7. MongoDB 2: 安装和使用
  8. HDU2028JAVA
  9. nginx介绍及安装
  10. webpack 引用 jquery + bootstrap 报错解决
  11. 基于.NET CORE微服务框架 -谈谈Cache中间件和缓存降级
  12. 第三方插件渗透攻击之KingView
  13. Flink从入门到放弃(入门篇4) DataStreamAPI
  14. 一个完整Java Web项目背后的密码
  15. .Net core下的配置设置(一)——Configuration
  16. linux-ubuntu14.04以下使用gdb出现的问题
  17. LoadRunner-参数化(界面说明)
  18. 利用python计算windows全盘文件md5值的脚本
  19. windows下beautifulsoup使用lxml解析使用报错
  20. Android签名验证漏洞POC及验证

热门文章

  1. 关于JVM内存溢出的原因分析及解决方案探讨
  2. 使用CefSharp在.NET中嵌入Chromium
  3. PHP危险函数总结学习
  4. loging日志的使用
  5. CEF避坑指南(一)——下载并编译第一个示例
  6. TinyMCE使用
  7. 解决Mac下VSCode打开zsh乱码
  8. reponse.addHeader中文名字乱码
  9. Shell总结1
  10. Google Protocol Buffer Basics: C++