学习内容:
def函数算个人BMI值并判断胖瘦?对比如何简化代码?题目如下
自己写的代码:
def calculate_BMI(height,weight):
calculate_BMI =weight / (height **2)
print(calculate_BMI)
return(calculate_BMI)
weight = float(input("请输入您的体重?(单位:kg)"))
print (weight,"kg")
height = float(input("请输入您的身高?(单位:m)"))
print (height,"m")
if calculate_BMI(height,weight) <= 18.5 :
print ('您的BMI分类是:偏瘦')
print (calculate_BMI)
elif 18.5 <calculate_BMI(height,weight) <= 25 :
print ('您的BMI分类是:正常')
print (calculate_BMI)
elif 25 <calculate_BMI(height,weight) <= 30 :
print ('您的BMI分类是:偏胖')
print (calculate_BMI)
elif calculate_BMI(height,weight) > 30 :
print ('您的BMI分类是:肥胖')
print (calculate_BMI)
我自己写的时候各种问题:
- #第一次出现这个<function calculate_BMI at 0x00000243A2EDF708>,是因为我的bmi可能除不尽,没有限制浮点数后两位,但我不太记得清楚这个浮点数的怎么用了
- #研究了"{:.2f}".format() 似乎是以前学过,这个找了好久没找到,也是有点无语子,最后没用上
- #第一次把weight 和height的拼写弄错了,查了很久
- #在if后的冒号必须是英文符号,中文冒号会报错
- #学习了在options里面选择size是调整页面中的字大小
- #怎么换行啊这个idle的输入界面 我无语了,还有就是每次中英文切换,都会跳出一个搜索的东西,不知道是啥
- #查找错误才是最费时间的,如果一开始写错要改真的是最麻烦最难的,而且有些细节不会的话,网上找感觉找不到合适的处理方法orz(这个写文章怎么没有表情包啊T_T)
接下来看看标答吧!!!
def calculate_BMI(height,weight):
BMI =weight / height **2
if BMI <= 18.5 :
category = '偏瘦'
elif BMI <= 25 :
category = '正常'
elif BMI <= 30:
category = '偏胖'
else:
category = '肥胖'
print(f'您的BMI分类为:{category}')
return BMI
calculate_BMI(1.8,70)
result = calculate_BMI(1.8,70)
print(result)
对照标答的时候我自己整理了一下我的问题,共勉
调用函数、返回值、赋值、函数包括的不止是计算公式,还有比较——这些理念都很好
标答就是更简单了,看着清爽了很多,有些思考也很重要,值得学习
def calculate_BMI(height,weight):
BMI =weight / height **2#1平方的运算没有括号;2公式BMI和函数名区分
if BMI <= 18.5 :#这个if缩进了,我没有
categoty = '偏瘦' #赋值新类别
elif BMI <= 25 :#小于的部分可以省略,因为上一分支包括了
categoty = '正常'
elif BMI <= 30:#同上!
categoty = '偏胖'
else:
categoty = '肥胖'#到这里我的category全部打错,抄错了!!!粗心
print(f'您的BMI分类为:{category}')#f""用法我没掌握好,f"引号内加文字{花括号里放变量}",规则真的好烦躁,麻烦
return BMI#这个时候才是函数结束??我只把公式理解为函数了?她好像是把比较也算在函数里
calculate_BMI(70,1.8)#调用函数和测试,我没有这个概念,我以为我空行的位置后就是调用函数了。
result = calculate_BMI(70,1.8)#用变量来展示结果,赋值为函数的返回值!!!这个概念
print(result)