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开 ...
随机推荐
- jdk安装及环境配置
1.下载对应的安装包(我们公司用的是jdk 1.8) 2.选择对应版本,点击安装,在选择安装位置的时候,选择自己对应存放的位置,其他都点击下一步就行了,先安装jdk,后安装jre 3.环境变量,选择 ...
- CSS:抗锯齿 font-smoothing
本文引自:http://www.cnblogs.com/sunshq/p/4595673.html -webkit-font-smoothing 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更 ...
- 8.7 day28 网络编程 socket套接字 半连接池 通信循环 粘包问题 struct模块
前置知识:不同计算机程序之间的数据传输 应用程序中的数据都是从程序所在计算机内存中读取的. 内存中的数据是从硬盘读取或者网络传输过来的 不同计算机程序数据传输需要经过七层协议物理连接介质才能到达目标程 ...
- Java 在spring cloud中使用Redis,spring boot同样适用
1.本地安装redis服务,官网下载. 2.在开发中要使用redis,首先要启动本地redis服务,启动后页面如下: 3.在spring boot项目pom.xml文件中添加Redis需要的依赖包,可 ...
- python+unittest框架第二天unittest之简单认识Test Suite:测试套件
今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...
- 逆向破解之160个CrackMe —— 013
CrackMe —— 013 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- Hive 系列(一)—— Hive 简介及核心概念
一.简介 Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 ...
- JavaScript数组方法大全(第一篇)
数组方法大全(第一篇) 注意:第一次写博客有点小紧张,如有错误欢迎指出,如有雷同纯属巧合,本次总结参考书籍JavaScript权威指南,有兴趣的小伙伴可以去翻阅一下哦 join()方法 该方法是将数组 ...
- 使用注解的Hibernate one-to-many映射
One to many映射关系指的是两个实体间一个实体可以和多个实体有关联关系,但是多的这一端只能和一的这一端的一个实例有关系.它是一个1 到 n的关系.例如在任何的公司员工可以注册多个银行账户,一个 ...
- Linux下Tomcat的搭建以及开机自启动设置
首先进行下JDK的配置: 1.查看下系统信息,确认是32位还是64位:uname -a 2.下载相应位数的jdk压缩包,传到Linux系统,这里提供一个32位和64位的下载链接:https://pan ...