示例5:身体质量指数BMI
BMI的定义
-BMI:国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析
-定义:BMI=体重(kg)/身高*身高(m*m)
身体质量指数标准
思路方法:
-难点在于同时输出国际和国内对应的分类
-思路1:分别计算并给出国际和国内BMI分类
-思路2:混合计算并给出国际和国内BMI分类
直接上混合代码:
#CalBMIv1.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))
逐行分析:
#CalBMIv1.py
注释,不执行
height,weight=eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
在控制台提示并要求用户要输入身高和体重
bmi=weight/pow(height,2)
根据定义,求bmi的值
print("BMI数值为:{:.2f}".format(bmi))
输出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="肥胖","肥胖"
根据国际和国内标准定义if,else语句的执行效果
print("BMI 指标为:国际'{0}',国内'{1}'".format(who,nat))
输出国际国内的BMI判断后的结果
举一反三
-多分支条件之间的覆盖是重要问题,是此程序研究重点
-程序可运行,但结果不正确,要注意多分支的逻辑顺序
-分支结构是程序的重要框架,读程序先看分支,理清逻辑再逐行分析程序意图