024 实例5-身体质量指数BMI
一、"身体质量指数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"举一反三
关注多分支条件的组合
- 多分支条件之间的覆盖是重要问题
- 程序可运行,但不正确,要注意多分支
- 分支结构是程序的重要框架,读程序先看分支
024 实例5-身体质量指数BMI的更多相关文章
- 第九章 身体质量指数BMI的python实现
身体质量指数BMI:对身体质量的刻画(Body Mass Index) 国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析 定义: BMI=体重(kg)/身高^2(m2) 提出问题: 实例 ...
- Python计算身体质量指数BMI
使用Python计算身体质量指数BMI 运行结果如下: 源代码: 1 ''' 2 3. 利用函数思想,将"身体质量指数BMI"源程序封装成为一个函数并调用. 3 :param he ...
- 身体质量指数BMI
Solution: 方法一:"Python语言程序设计"(中国大学MOOC平台)的答案 分析:对比两种指标,将共性(相同的区间)和异性(不同的区间)细分.这样两种指标的判断条件(不 ...
- Android app身体质量指数(BMI)
针对中国人的标准身高体重来測算,提示您身体的健康状况. 提示您是否应该锻炼.节食或者补充营养等.第一时间知道您的健康状况. 下载地址:http://android.myapp.com/myapp/de ...
- python身体指数BMI
问题需求 既要输出国际标准也要输出国内标准
- python学习笔记(4)
.................................................................................................... ...
- Python学习笔记5程序的控制结构
1.分支结构 (1)单分支结构 (2)二分支结构 (3)多分支结构 条件判断 (4)程序的异常处理 2.实例:身体质量指数BMI 思路一(国内,稍作修改就是国际): 思路二: height,weigh ...
- python学习之路2(程序的控制结构)
1.程序的分支结构 1.1 单分支 if <条件>: 例:guess = eval(input()) <语句块> ...
- 十天快速入门Python
课程导学 001 课程定位和目标 002 课程导学 第一部分 Python快速入门 第1天 Python基本语法元素 003 Python基本语法元素 004 程序设计基本方法 005 Python开 ...
随机推荐
- Thread、ThreadPool、Task、Parallel、Async和Await基本用法、区别以及弊端
多线程的操作在程序中也是比较常见的,比如开启一个线程执行一些比较耗时的操作(IO操作),而主线程继续执行当前操作,不会造成主线程阻塞.线程又分为前台线程和后台线程,区别是:整个程序必须要运行完前台线程 ...
- SpringBoot操作ES进行各种高级查询
SpringBoot整合ES 创建SpringBoot项目,导入 ES 6.2.1 的 RestClient 依赖和 ES 依赖.在项目中直接引用 es-starter 的话会报容器初始化异常错误,导 ...
- 做梦也没有想到:Windows 上的 .NET Core 表现更糟糕
昨天晚上 18:15 左右我们发布了跑在 Windows 上 .NET Core 博客系统,本想与 .NET Framework 版进行同“窗”的较量,结果刚发布上线就发现 CPU 占用异常高,发布不 ...
- Jmeter使用csv文件读取测试数据
最近有同事在测试过程中遇到需要造批量测试数据的问题,这些数据往往是同一种单据,但是单据的内容不同,如果手工创建就比较费时费力.那我们用jmeter的csv文件来读取测试数据就完美解决了这个问题. 我们 ...
- Kaggle比赛(一)Titanic: Machine Learning from Disaster
泰坦尼克号幸存预测是本小白接触的第一个Kaggle入门比赛,主要参考了以下两篇教程: https://www.cnblogs.com/star-zhao/p/9801196.html https:// ...
- WebSocket和HTTP协议的区别
HTTP: 1,无状态协议. 2,短连接.(Ajax轮询方式或Long poll方式实现“持久连接”状态) 2,被动型. 客户端请求->服务器端响应.服务端不能主动联系客户端,只能有客户端发 ...
- python + selenium webdriver 从主窗口A跳转至主窗口B后,无法定位窗口B的元素的问题
在做登录脚本的时候,如果只是单纯从登录页面进行元素定位的话,并不存在这个问题 但实际情况是,从首页A进入到登录页面B(并非弹出框),这时候在页面B无法定位到该页面的元素 问题:从页面A进入页面B,无法 ...
- cookie、session和application都是些什么神?——图文加案例,不怕你不会,就怕你不看
cookie.session和application都是些什么神? 前言: 一直想写一篇关于cookie和session的博客,由于种种原因,一直没有整理,这不,今天还就遇到问题了,之前虽然会,但是好 ...
- Docker:镜像的迁移
从202将现有镜像搬到207的过程. 先说导出,两种方法:Docker save 和 docker export,前者保存镜像,后者导出容器. docker save docker.io/java:7 ...
- count(*) count(1) count(column)的区别
count(1)中的1并不是指第一个column: count(*)和count(1)一样,包括对值为NULL的统计: count(column)不包括对值为NULL的统计,这里的column指的不是 ...