首先分析如何定义BMI,以及国际国内的判断标准,这个涉及到多重分支语句。 为了更加明了各定义的取值方位,我们绘制线段图。
第一种,简单的逻辑表达:(没有优化前的,表现为比较的啰嗦)
Wt, Ht = eval(input("请输入体重(kg)和身高(m):"))
BMI = Wt / (Ht * Ht)
if BMI < 18.5:
print("国际'偏瘦'", "国内'偏瘦'")
elif 18.5 < BMI < 25:
if 18.5 < BMI < 24:
print("国际'正常'", "国内'正常'")
else:
print("国际'正常'", "国内'偏胖'")
elif 25 < BMI < 30:
if 25 < BMI < 28:
print("国际'偏胖'", "国内'偏胖'")
else:
print("国际'偏胖'", "国内'肥胖'")
else:
print("国际'肥胖'", "国内'肥胖'")
第二种,优化表达式后的:引用了print函数的格式化输出,达到代码简洁的效果。
Wt, Ht = eval(input("请输入体重(kg)和身高(m),中间用英文状态逗号隔开:")) BMI = Wt / (Ht * Ht) 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指数是:国际{},国内{}'.format(who,nat))