python3練習:簡單函數(BMI)


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM