身体质量指数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实现的更多相关文章

  1. Python计算身体质量指数BMI

    使用Python计算身体质量指数BMI 运行结果如下: 源代码: 1 ''' 2 3. 利用函数思想,将"身体质量指数BMI"源程序封装成为一个函数并调用. 3 :param he ...

  2. 身体质量指数BMI

    Solution: 方法一:"Python语言程序设计"(中国大学MOOC平台)的答案 分析:对比两种指标,将共性(相同的区间)和异性(不同的区间)细分.这样两种指标的判断条件(不 ...

  3. 024 实例5-身体质量指数BMI

    目录 一."身体质量指数BMI"问题分析 1.1 身体质量指数BMI 1.2 问题需求 二."身体质量指数BMI"实例讲解 2.1 身体质量指标BMI 2.1. ...

  4. 《python for data analysis》第九章,数据聚合与分组运算

    # -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...

  5. python 教程 第九章、 类与面向对象

    第九章. 类与面向对象 1)    类 基本类/超类/父类被导出类或子类继承. Inheritance继承 Inheritance is based on attribute lookup in Py ...

  6. 第九章、python文件的两种用途

    目录 第九章.python文件的两种用途 一.用途 第九章.python文件的两种用途 一.用途 当前运行的文件(脚本) 被导入的文件(模块) # aaa.py x = 1 def f1(): pri ...

  7. 通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile

      通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁 ...

  8. 第九章:Python高级编程-Python socket编程

    第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...

  9. Python 数据分析—第九章 数据聚合与分组运算

    打算从后往前来做笔记 第九章 数据聚合与分组运算 分组 #生成数据,五行四列 df = pd.DataFrame({'key1':['a','a','b','b','a'], 'key2':['one ...

随机推荐

  1. docker私有仓库搭建及使用

      1.下载官方镜像 sudo docker pull registry 下载完成后,docker images可以查看到pull下来的镜像registry 2.启动registry容器,用于提供私有 ...

  2. python实现发送微信消息

    import json from threading import Timer from wxpy import * import requests import urllib.parse def g ...

  3. 微信内 H5 页面自定义分享

    起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等).问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于 ...

  4. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  5. GStreamer跨平台多媒体框架

    GStreamer跨平台多媒体框架 Gstreamer基本概念 GStreamer是用于构造媒体处理组件图的库.它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合 ...

  6. 激光雷达Lidar Architecture and Lidar Design(下)

    Considerations on Lidar Design 双基地还是单基地? 双轴还是同轴? 几何重叠 向上还是向下看? 关心分散还是只关心时间? 发射器和接收器的波长 是否可调? 发射器和接收器 ...

  7. CVPR2020:4D点云语义分割网络(SpSequenceNet)

    CVPR2020:4D点云语义分割网络(SpSequenceNet) SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds 论 ...

  8. JUC 并发编程--09, 阻塞队列: DelayQueue, PriorityBlockingQueue ,SynchronousQueue, 定时任务线程池: ScheduledThreadPoolExecutor

    先看DelayQueue 这个是用优先级队列实现的无界限的延迟队列,直接上代码: /** * 这个是 {@link DelayQueue} 延时队列 的验证使用类 */ class MyDelayed ...

  9. ThreadLocal源码阅读笔记

    功能描述 ThreadLocal解决了访问共享变量的阻塞问题,并且不需要像CAS操作一样牺牲CPU资源,它为每一个线程维护了一个变量副本,每个线程在访问ThrealLocal里面的变量时实际上访问的是 ...

  10. 一、安装Tomcat服务器

    [root@ web1 ~]# yum -y install java-1.8.0-openjdk   #安装jdk [root@web1 ~]# yum -y install java-1.8.0- ...