#簡單寫個函數,計算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