第6章 函数

【目的】定义和调用函数及函数的参数、变量的作用域、匿名函数等

实例01:输出每日一贴(共享版)

def function_tips():
    '''功能:每日输出一条励志文字
    '''
    import datetime
    mot = ["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择",
           "今天星期二:\n含泪播种的人一定能笑着收货",
           "今天星期三:\n作对的事情比把事情作对重要",
           "今天星期四:\n命运给予我们的不是失望之酒,而是机会之杯",
           "今天星期五:\n不要等到明天,明天太遥远,今天就行动",
           "今天星期六:\n求知若渴,虚心若愚",
           "今天星期日:\n成功将属于那些从不说“不可能”的人"]
    day = datetime.datetime.now().weekday()
    print(mot[day])
function_tips()

输出结果如下

 

 实例02:根据身高、体重计算BMI指数(共享版)

def fun_bmi(person,height,weight):
    '''功能:根据身高和体重计算BMI指数
        person:姓名
        height:身高(米)
        weight:体重(千克)
        '''
    print(person + "的身高:" + str(height) + "米\t 体重:" + str(weight) + "千克")
    bmi=weight/(height*height)
    print(person +"的BMI指数为:"+str(bmi))
    #判断身材是否合理
    if bmi<18.5 :
        print("你的体重过轻")
    if bmi>=18.5 and bmi<24.9:
        print("正常范围,注意保持")
    if bmi>=24.9 and bmi<29.9 :
        print("你的体重过重")
    if bmi>=29.9 :
        print("肥胖")
fun_bmi("路人甲",1.83,60)
fun_bmi("路人乙",1.60,50)

输出结果如下:

 

 实例03:根据身高、体重计算BMI指数(共享升级版)

def fun_upgrade(*person):
    '''功能:根据身高和体重计算BMI指数(共享升级版)
        *person:可变参数该参数中需要传递带3个元素的列表
        分别为姓名\身高(单位:米)和体重(单位:千克)
        '''
    for list_person in person:
        for item in list_person:
            person = item[0]
            height = item[1]
            weight = item[2]
            print("\n" + "="*13,person,"="*13)
            print( "的身高:" + str(height) + "米\t 体重:" + str(weight) + "千克")
            bmi=weight/(height*height)
            print("的BMI指数为:"+str(bmi))
            #判断身材是否合理
            if bmi<18.5 :
                print("你的体重过轻")
            if bmi>=18.5 and bmi<24.9:
                print("正常范围,注意保持")
            if bmi>=24.9 and bmi<29.9 :
                print("你的体重过重")
            if bmi>=29.9 :
                print("肥胖")
list_w = [('绮梦',1.70,65),('零语',1.78,50),('黛兰',1.72,66)]
list_m = [('梓轩',1.80,75),('冷依一',1.75,70)]
fun_upgrade(list_w,list_m)

运行结果如下:

 

 实例04:模拟结账功能——计算实付金额

def fun_checkout(money):
    '''功能:计算商品合计金额并进行折扣处理
        money:保存商品金额的列表
        返回商品的合计金额和折扣后的金额
        '''
    money_old = sum(money)
    money_new = money_old
    if 500 <= money_old < 1000:
        money_new = '{:.2f}'.format(money_old*0.9)
    elif 1000 <=money_old <2000:
        money_new = '{:.2f}'.format(money_old*0.8)
    elif 2000 <= money_old <3000:
        money_new = '{:.2f}'.format(money_old*0.7)
    elif money_old >=3000:
        money_new = '{:.2f}'.format(money_old*0.6)
    return money_old,money_new

print("\n开始结算······")
list_money = []
while True:
    inmoney = float(input("输入商品金额(输入0代表完毕):"))
    if int(inmoney) == 0:
        break
    else:
        list_money.append(inmoney)
money = fun_checkout(list_money)
print("合计金额",money[0],"应付金额",money[1])

运行结果如下:

 

 实例05:一棵松树的梦

pinetree = '我是一颗松树'
def fun_christmastree():
    '''功能:一个梦
        无返回值
        '''
    pinetree = '挂上彩灯、礼物……我变成一颗圣诞树@^.^@\n'
    print(pinetree)
print('\n下雪了……\n')
print('============开始做梦==========\n')
fun_christmastree()
print('==============梦醒了===========\n')
pinetree = '我身上落满雪花,'+ pinetree+'-_-'
print(pinetree)

运行结果如下:

 

 实例06:应用lambda实现对爬取到的秒杀商品信息进行排序

bookinfo = [('不一样的卡梅拉(全套)',22.50,120),('零基础学Android',65.10,89.80),('摆渡人',23.40,36.00),('福尔摩斯探索全集8册',22.50,128)]
print('爬虫到的商品信息:\n',bookinfo,'\n')
bookinfo.sort(key = lambda x:(x[1],x[1]/x[2]))
print('排序后的商品信息:\n',bookinfo)

运行结果如下:

 

 实战1:导演为剧本选主角

def act(actor):
    print(actor+"开始参演这个剧本")
A=input("导演选定的主角是:")
act(A)

运行结果如下:

 

 实战2:模拟美团外卖商家的套餐

def taocan(a,b,c,d,e,f):
    print("米线店套餐如下:1."+ a +'2.'+ b+'3.'+c+'4.'+d+'5.'+e+'6.'+f)
    print(a+b)
    print(c+d)
    print(e+f)
taocan('考神套餐','13元','单人套餐','9.9元','情侣套餐','20元')

 

实战3:根据生日判断星座

m=("摩羯座","水瓶座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座")
d=(20,19,21,20,21,22,23,23,23,24,23,22)
def xingzuo(month,day):
    if day<d[month-1]:
        return m[month-1]
    else:
        return m[month]
M=int(input("请输入月份:(例如:5)"))
D=int(input("请输入日期:(例如:17)"))
print(str(M)+''+str(D)+'日星座为'+xingzuo(M,D))

运行结果如下:

 

 

实战4:将美元转换为人民币

def change(dollar):
    RMB = dollar*6.28
    return RMB
dollar = float(input("请输入要转换的美元金额:"))
print("转换后人民币金额是:",change(dollar))

运行结果如下:

 

 

posted @ 2022-10-19 12:34  ShuiLian  阅读(33)  评论(0)    收藏  举报