身体质量指数BMI

孤人 提交于 2019-11-26 14:13:56

Solution:

方法一:"Python语言程序设计"(中国大学MOOC平台)的答案

分析:对比两种指标,将共性(相同的区间)和异性(不同的区间)细分。这样两种指标的判断条件(不等式)会一致,从而所分的每个区间都只用一条判断语句即可处理,同时将处理的结果一次性赋值给两个变量

方法二:本人的答案

 1 def gj(bmi):
 2     if bmi<18.5:
 3         a = "偏瘦"
 4     elif 18.5<=bmi<25:
 5         a = "正常"
 6     elif 25<=bmi<30:
 7         a = "偏胖"
 8     else:
 9         a = "肥胖"
10     return a
11 def gn(bmi):
12     if bmi<18.5:
13         b = "偏瘦"
14     elif 18.5<=bmi<24:
15         b = "正常"
16     elif 24<=bmi<28:
17         b = "偏胖"
18     else:
19         b = "肥胖"
20     return b
21 def main():
22     height, weight = eval(input())
23     bmi= round(weight/(height**2),2)
24     c = gj(bmi)
25     d = gn(bmi)
26     print("BMI数值为:{}".format(bmi))
27     print("BMI指标为:国际'{}',国内'{}'".format(c,d))
28 main()

此方法没有将两种指标不同的区间加以细分,原原本本按照题目表格的判断条件(不等式)进行讨论。此题使用自定义函数要注意以下几点:

(1)因为“国际”函数:gj()和“国内”函数:gn(),都要用到bmi,所以两函数的参数都必须设为bmi。此题这两个函数的独立运行,互不影响,即没有信息流的传递

(2)主函数中,行22-23也可写在最开头,但为了规范,建议写进主函数中。行24-25的c和d可以省略,将行27、28的c和d改为gj(bmi)和gn(bmi)即可

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!