第九章 身体质量指数BMI的python实现
身体质量指数BMI:对身体质量的刻画(Body Mass Index)
国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析
定义:
BMI=体重(kg)/身高^2(m2)
提出问题:
实例:体重72kg 身高1.75m
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指标分类信息(国际和国内)
我们大概有两个思路:
思路1:分别计算给出国际和国内的BMI分类
思路2:混合计算并给出国际国内BMI分类
首先我们根据思路一编写如下代码
1 #CalBMIv1.py
2 height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
3 bmi = weight / pow(height, 2)
4 print("BMI 数值为:{:.2f}".format(bmi))
5 who = ""
6 if bmi < 18.5:
7 who = "偏瘦"
8 elif 18.5 <= bmi < 25:
9 who = "正常"
10 elif 25 <= bmi < 30:
11 who = "偏胖"
12 else:
13 who = "肥胖"
14 print("BMI 指标为:国际'{0}'".format(who))
1 #CalBMIv2.py
2 height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
3 bmi = weight / pow(height, 2)
4 print("BMI 数值为:{:.2f}".format(bmi))
5 nat = ""
6 if bmi < 18.5:
7 nat = "偏瘦"
8 elif 18.5 <= bmi < 24:
9 nat = "正常"
10 elif 24 <= bmi < 28:
11 nat = "偏胖"
12 else:
13 nat = "肥胖"
14 print("BMI 指标为:国内'{0}'".format(nat))
根据思路2,可以编写如下程序
1 #CalBMIv3.py
2 height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
3 bmi = weight / pow(height, 2)
4 print("BMI 数值为:{:.2f}".format(bmi))
5 who, nat = "", ""
6 if bmi < 18.5:
7 who, nat = "偏瘦", "偏瘦"
8 elif 18.5 <= bmi < 24:
9 who, nat = "正常", "正常"
10 elif 24 <= bmi < 25:
11 who, nat = "正常", "偏胖"
12 elif 25 <= bmi < 28:
13 who, nat = "偏胖", "偏胖"
14 elif 28 <= bmi < 30:
15 who, nat = "偏胖", "肥胖"
16 else:
17 who, nat = "肥胖", "肥胖"
18 print("BMI 指标为:国际'{0}', 国内'{1}'".format(who, nat))
大家可以动手试试
第九章 身体质量指数BMI的python实现的更多相关文章
- Python计算身体质量指数BMI
使用Python计算身体质量指数BMI 运行结果如下: 源代码: 1 ''' 2 3. 利用函数思想,将"身体质量指数BMI"源程序封装成为一个函数并调用. 3 :param he ...
- 身体质量指数BMI
Solution: 方法一:"Python语言程序设计"(中国大学MOOC平台)的答案 分析:对比两种指标,将共性(相同的区间)和异性(不同的区间)细分.这样两种指标的判断条件(不 ...
- 024 实例5-身体质量指数BMI
目录 一."身体质量指数BMI"问题分析 1.1 身体质量指数BMI 1.2 问题需求 二."身体质量指数BMI"实例讲解 2.1 身体质量指标BMI 2.1. ...
- 《python for data analysis》第九章,数据聚合与分组运算
# -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...
- python 教程 第九章、 类与面向对象
第九章. 类与面向对象 1) 类 基本类/超类/父类被导出类或子类继承. Inheritance继承 Inheritance is based on attribute lookup in Py ...
- 第九章、python文件的两种用途
目录 第九章.python文件的两种用途 一.用途 第九章.python文件的两种用途 一.用途 当前运行的文件(脚本) 被导入的文件(模块) # aaa.py x = 1 def f1(): pri ...
- 通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile
通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁 ...
- 第九章:Python高级编程-Python socket编程
第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...
- Python 数据分析—第九章 数据聚合与分组运算
打算从后往前来做笔记 第九章 数据聚合与分组运算 分组 #生成数据,五行四列 df = pd.DataFrame({'key1':['a','a','b','b','a'], 'key2':['one ...
随机推荐
- docker私有仓库搭建及使用
1.下载官方镜像 sudo docker pull registry 下载完成后,docker images可以查看到pull下来的镜像registry 2.启动registry容器,用于提供私有 ...
- python实现发送微信消息
import json from threading import Timer from wxpy import * import requests import urllib.parse def g ...
- 微信内 H5 页面自定义分享
起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等).问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于 ...
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- GStreamer跨平台多媒体框架
GStreamer跨平台多媒体框架 Gstreamer基本概念 GStreamer是用于构造媒体处理组件图的库.它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合 ...
- 激光雷达Lidar Architecture and Lidar Design(下)
Considerations on Lidar Design 双基地还是单基地? 双轴还是同轴? 几何重叠 向上还是向下看? 关心分散还是只关心时间? 发射器和接收器的波长 是否可调? 发射器和接收器 ...
- CVPR2020:4D点云语义分割网络(SpSequenceNet)
CVPR2020:4D点云语义分割网络(SpSequenceNet) SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds 论 ...
- JUC 并发编程--09, 阻塞队列: DelayQueue, PriorityBlockingQueue ,SynchronousQueue, 定时任务线程池: ScheduledThreadPoolExecutor
先看DelayQueue 这个是用优先级队列实现的无界限的延迟队列,直接上代码: /** * 这个是 {@link DelayQueue} 延时队列 的验证使用类 */ class MyDelayed ...
- ThreadLocal源码阅读笔记
功能描述 ThreadLocal解决了访问共享变量的阻塞问题,并且不需要像CAS操作一样牺牲CPU资源,它为每一个线程维护了一个变量副本,每个线程在访问ThrealLocal里面的变量时实际上访问的是 ...
- 一、安装Tomcat服务器
[root@ web1 ~]# yum -y install java-1.8.0-openjdk #安装jdk [root@web1 ~]# yum -y install java-1.8.0- ...