第九章 身体质量指数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 ...
随机推荐
- Assignment Problem的若干思考
最近受到南京一个同学的push,又开始了博客园写作之旅.欢迎大家联系我做代码实现工作,QQ:1198552514.权当赚点生活费~ 我的研究也经常用的Assignment problem,而且很多 ...
- Could not get JDBC Connection排查
最近在维护的一个比较旧的项目,发现总是隔一段时间JDBC就报错: Could not get JDBC Connection; nested exception is org.apache.commo ...
- jupyter notebook快捷键使用的注意点
来源:https://zhidao.baidu.com/question/1800695798976401387.html 本文做进一步的阐释: 1.使行出现,但是光标要点击到有line空白区域 直接 ...
- Dockerfile构建实践
Dockerfile构建实践 本文介绍了用于构建有效图像的推荐最佳实践和方法. Docker通过从一个Dockerfile文本文件中读取指令来自动构建映像,该文本文件按顺序包含构建给定映像所需的所有命 ...
- TensorFlow实现多层感知机MINIST分类
TensorFlow实现多层感知机MINIST分类 TensorFlow 支持自动求导,可以使用 TensorFlow 优化器来计算和使用梯度.使用梯度自动更新用变量定义的张量.本文将使用 Tenso ...
- NSight Compute 用户手册(上)
NSight Compute 用户手册(上) 非交互式配置文件活动 从NVIDIA Nsight Compute启动目标应用程序 启动NVIDIA Nsight Compute时,将出现欢迎页面.单击 ...
- fiddler选项卡-Composer(构建请求)
Composer Composer支持手动构建http.https和ftp请求.点到composer选项卡界面,我们可以看到下面有一串英文. use this page to compose a Re ...
- java后端知识点梳理——web安全
跨域 当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域. 这里的同源指访问的协议.域名.端口都相同. 同源策略是由 Netscape 提出的著名安全策略,是浏览器最核心.基 ...
- 【VBA】读取配置文件存入字典型变量中
配置文件: 源码: Dim Co As Object '设为全局变量 Function 读取cfg() As Boolean Dim strcfg As String strcfg = " ...
- 认识5G
认识5G 一 移动通信发展历程 1移动通信技术具有代际演进规律 "G"代表一切 每10年一个周期 二 5G技术指标 流量密度:单位面积内的总流量数,是衡量移动网络在一定区域范围 ...