Python经典案例:身体指数BMI

2023-09-26 17:42

相信大家都知道BMI
即:BMI = 体重 (kg) / 身高2 (m2)

对于这个问题,我们要做到:

  • 输入:给定体重和身高值
  • 输出:BMI指标分类信息(国际和国内)
    思路方法:
  • 难点在于同时输出国际和国内对应的分类
  • 思路1:分别计算并给出国际和国内BMI分类
  • 思路2:混合计算并给出国际和国内BMI分类
    上代码:
    首先是国际码:
#m.genealogy-computer-tips.com 
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 = "偏胖"
else: who = "肥胖" 
print("BMI 指标为:国际'{0}'".format(who))

其次是国内码:

#m.genealogy-computer-tips.com 
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: ")) 
bmi = weight / pow(height, 2) 
print("BMI 数值为:{:.2f}".format(bmi)) n
at = "" 
if bmi < 18.5: nat = "偏瘦"
elif 18.5 <= bmi < 24: nat = "正常"
elif 24 <= bmi < 28: nat = "偏胖"
else: nat = "肥胖" 
print("BMI 指标为:国内'{0}'".format(nat))

最后是混合的,找到两者计算的意义相同部分,并分别进行定义。

#m.genealogy-computer-tips.com 
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))

关注多分支条件的组合

  • 多分支条件之间的覆盖是重要问题
  • 程序可运行,但如果不正确,要注意多分支 -
  • 分支结构是程序的重要框架,读程序先看分支