python3练习:简单函数(BMI)

爷,独闯天下 提交于 2019-12-04 18:11:23
#简单写个函数,计算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

 

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