#简单写个函数,计算BMI
def fun_bmi (name,height,weight):
'''
计算BMI
:param name: 姓名
:param height: 身高
:param weight: 体重
:return: none
'''
bmi = weight/2/(height*height) #BMI公式
#print (name,'身高:',height,"体重:",weight,',对应BMI为:',bmi, end=',') #bmi结果过长
print (name,'身高:',height,"体重:",weight,',对应BMI为:%.2f' %bmi, end=',') #BMI2位小数显示出来,且end=','表示不换行,以,结束
if bmi >= 29.9:
print (name+"该减肥了~")
elif bmi >= 24.9:
print(name+"尚可,但在演艺圈的话可以瘦一些~")
elif bmi >= 18.5:
print(name+"在普通人中是健康的,是否要再瘦些看本人意愿~")
elif bmi > 18:
print(name+"在贵圈中很标准,也勉强算健康哟")
elif bmi > 17.9:
print(name+"太瘦啦,想说:健康最重要啊")
else:
print(name + ",这身体是有病呀,啥也别说了,增肥吧= _ =!")
fun_bmi("肖战",1.83,120)
fun_bmi('一博',1.79,120)
fun_bmi('蓝大',1.85,150)
fun_bmi('哪吒的师父:太乙真人',1.70,200)
fun_bmi('敖丙的师父:申公豹',1.79,110)
结果:
肖战 身高: 1.83 体重: 120 ,对应BMI为:17.92,肖战太瘦啦,想说:健康最重要啊
一博 身高: 1.79 体重: 120 ,对应BMI为:18.73,一博在普通人中是健康的,是否要再瘦些看本人意愿~
蓝大 身高: 1.85 体重: 150 ,对应BMI为:21.91,蓝大在普通人中是健康的,是否要再瘦些看本人意愿~
哪吒的师父:太乙真人 身高: 1.7 体重: 200 ,对应BMI为:34.60,哪吒的师父:太乙真人该减肥了~
敖丙的师父:申公豹 身高: 1.79 体重: 110 ,对应BMI为:17.17,敖丙的师父:申公豹,这身体是有病呀,啥也别说了,增肥吧= _ =!
函数2:
#上面调用的时候会很费劲,因为要调用多次,所以相同的函数内容,用可变参数会简单些
print ('\n','*'*20,'使用可变参数输出','*'*20)
def fun_bmi_upgrade (*list):
'''
计算BMI
:param name: 姓名
:param height: 身高,米
:param weight: 体重,kg
:return: none
'''
for information in list:
for item in information:
name = item[0]
height = item[1]
weight = item[2]
bmi = weight/(height*height) #BMI公式
print (name,'身高:',height,"体重:",weight,',对应BMI为:%.2f' %bmi, end=',') #BMI2位小数显示出来,且end=','表示不换行,以,结束
if bmi >= 29.9:
print (name+"该减肥了~")
elif bmi >= 24.9:
print(name+"尚可,但在演艺圈的话可以瘦一些~")
elif bmi >= 18.5:
print(name+"在普通人中是健康的,是否要再瘦些看本人意愿~")
elif bmi > 18:
print(name+"在贵圈中很标准,也勉强算健康哟")
elif bmi > 17.9:
print(name+"太瘦啦,想说:健康最重要啊")
else:
print(name + ",这身体是有病呀,啥也别说了,增肥吧= _ =!")
list_cql = [["肖战",1.83,60],['一博',1.79,60],['蓝大',1.85,75]]
list_nz = [('哪吒的师父:太乙真人',1.70,100),('敖丙的师父:申公豹',1.79,55)]
fun_bmi_upgrade(list_cql,list_nz)
结果2:
******************** 使用可变参数输出 ********************
肖战 身高: 1.83 体重: 60 ,对应BMI为:17.92,肖战太瘦啦,想说:健康最重要啊
一博 身高: 1.79 体重: 60 ,对应BMI为:18.73,一博在普通人中是健康的,是否要再瘦些看本人意愿~
蓝大 身高: 1.85 体重: 75 ,对应BMI为:21.91,蓝大在普通人中是健康的,是否要再瘦些看本人意愿~
哪吒的师父:太乙真人 身高: 1.7 体重: 100 ,对应BMI为:34.60,哪吒的师父:太乙真人该减肥了~
敖丙的师父:申公豹 身高: 1.79 体重: 55 ,对应BMI为:17.17,敖丙的师父:申公豹,这身体是有病呀,啥也别说了,增肥吧= _ =!
函数3
#学习调用函数中的返回值
print ('\n','*'*30,'调用返回值','*'*30)
def bmi(bmi): #定义bmi比较的函数
bmi = float(bmi)
if bmi >= 29.9:
print (name + "该减肥了~")
elif bmi >= 24.9:
print(name + "尚可,但在演艺圈的话可以瘦一些~")
elif bmi >= 18.5:
print(name + "在普通人中是健康的,是否要再瘦些看本人意愿~")
elif bmi > 18:
print(name + "在贵圈中很标准,也勉强算健康哟")
elif bmi > 17.9:
print(name + "太瘦啦,想说:健康最重要啊")
else:
print(name + ",这身体是有病呀,啥也别说了,增肥吧= _ =!")
def fun_bmi_upgrade2 (list): #定义计算bmi的函数
'''
计算BMI
:param name: 姓名
:param height: 身高,米
:param weight: 体重,kg
:return: bmi
'''
import math
global name
name = list[0]
height = list[1]
weight = list[2]
bmi1 = weight/(height*height)
bmi = '{:.2f}'.format(bmi1) #BMI公式
print (name,'身高:',height,"体重:",weight,',对应BMI为:',bmi, end=',') #BMI2位小数显示出来,且end=','表示不换行,以,结束
return (bmi)
def fun_bmilist(*lists): #定义循环多个列表的列表的函数
for listn in lists:
for list in listn:
bmi2 = fun_bmi_upgrade2 (list) #取值bmi
bmi(bmi2) #通过bmi调用bmi比较函数
list_cql = [["肖战",1.83,60],['一博',1.79,60],['蓝大',1.85,75]]
list_nz = [('哪吒的师父:太乙真人',1.70,100),('敖丙的师父:申公豹',1.79,55)]
print ('='*30,'调用多个列表的列表','='*30)
fun_bmilist(list_cql,list_nz)
print ('='*30,'调用多个列表','='*30)
fun_bmilist(list_cql)
print ('='*30,'调用1个列表','='*30)
fun_bmi_upgrade2 (["肖战",1.83,60])
结果3
****************************** 调用返回值 ******************************
============================== 调用多个列表的列表 ==============================
肖战 身高: 1.83 体重: 60 ,对应BMI为: 17.92,肖战太瘦啦,想说:健康最重要啊
一博 身高: 1.79 体重: 60 ,对应BMI为: 18.73,一博在普通人中是健康的,是否要再瘦些看本人意愿~
蓝大 身高: 1.85 体重: 75 ,对应BMI为: 21.91,蓝大在普通人中是健康的,是否要再瘦些看本人意愿~
哪吒的师父:太乙真人 身高: 1.7 体重: 100 ,对应BMI为: 34.60,哪吒的师父:太乙真人该减肥了~
敖丙的师父:申公豹 身高: 1.79 体重: 55 ,对应BMI为: 17.17,敖丙的师父:申公豹,这身体是有病呀,啥也别说了,增肥吧= _ =!
============================== 调用多个列表 ==============================
肖战 身高: 1.83 体重: 60 ,对应BMI为: 17.92,肖战太瘦啦,想说:健康最重要啊
一博 身高: 1.79 体重: 60 ,对应BMI为: 18.73,一博在普通人中是健康的,是否要再瘦些看本人意愿~
蓝大 身高: 1.85 体重: 75 ,对应BMI为: 21.91,蓝大在普通人中是健康的,是否要再瘦些看本人意愿~
============================== 调用1个列表 ==============================
肖战 身高: 1.83 体重: 60 ,对应BMI为: 17.92,
Process finished with exit code 0