• 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"举一反三

    关注多分支条件的组合

    • 多分支条件之间的覆盖是重要问题
    • 程序可运行,但不正确,要注意多分支
    • 分支结构是程序的重要框架,读程序先看分支
  • 相关阅读:
    hdu 2199 Can you solve this equation? 二分
    STL 学习代码~
    hdu 1551 Cable master 二分
    fzu 1564 Combination 组合数是否包含因数
    fafu 1079 帮冬儿忙 组合数包含因数个数
    soj 3290 Distribute The Apples I 组合数对素数取余
    fzu 2020 组合 组合数对素数取余
    hdu 1969 Pie 二分
    hdu 2141 Can you find it? 二分
    hdu 2899 Strange fuction 二分
  • 原文地址:https://www.cnblogs.com/nickchen121/p/11185032.html
Copyright © 2020-2023  润新知