首页 > 其他分享 >第六章 函数

第六章 函数

时间:2022-10-20 13:14:30浏览次数:49  
标签:fun 函数 person money bmi 如下 print 第六章

实例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指数(共享版)

   在IDLE中创建一个名称为function_bmi.py的文件,然后在该文件中定义一个名称为fun_bmi的函数,该函数包括3个参数,分别用于指定姓名、身高和体重,再根据公式:BMI=体重/(身高×身高)计算BMI指数,并输出结果,最后在函数体外调用两次fun_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("您的体重过轻 ~@_@\n")
    if bmi >= 18.5 and bmi < 24.9:
        print("正常范围,注意保持(-_-)\n")
    if bmi >= 24.9 and bmi < 29.9:
        print("肥胖 ^@_@^\n")

#调用函数
fun_bmi("路人甲", 1.83, 60)
fun_bmi("路人乙", 1.60, 50)

 

 

 运行结果如下:

 

 

 

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

  在 IDLE中创建一个名称为 function_bmi_upgrade.py的文件,然后在该文件中定义一个名称为fun_bmi_upgrade的函数,该函数包括一个可变参数,用于指定包括姓名、身高和体重的测试人信息,在该函数中将根据测试人信息计算BMI指数,并输出结果,最后在函数体外定义一个列表,并且将该列表作为fun_bmi_upgrade()函数的参数调用,代码如下:

 

代码如下:

def fun_bmi_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("肥胖 ^@_@^")

#调用函数
list_w =[('绮梦', 1.70, 65),('零语', 1.78, 50),('黛兰', 1.72, 66)]
list_m =[('梓轩', 1.80, 75),('冷伊一', 1.75, 70)]
fun_bmi_upgrade(list_w, list_m)

 

 

 运行结果如下:

 

 

 

 

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

  在IDLE中创建一个名称为checkout.py的文件,然后在该文件中定义一个名称为 fun_checkout的函数,该函数包括一个列表类型的参数,用于保存输入的金额,在该函数中计算合计金额和相应的折扣,并将计算结果返回,最后在函数体外通过循环输入多个金额保存到列表中,并且将该列表作为fun_checkout()函数的参数调用。

 

代码如下:

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

#调用函数
print("\n开始结算......\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:一颗松树的梦

   在IDLE中创建一个名称为differenttree.py的文件,然后在该文件中定义一个全局变量pinetree,并为其赋初始值,再定义一个名称为fun_christmastree的函数,在该函数中定义名称为pinetree的局部变量,并输出,最后在函数体外调用fun christmastree()函数,并输出全局变量pinetree的值。

 
代码如下:

pinetree = '我是一颗松树'     # 定义一个全局变量(松树)
def fun_christmastree():
    '''
    功能:一个梦
        无返回值
    '''
    pinetree = '挂上彩灯、礼物……我变成一棵圣诞树@^.^@ \n'#定义局部变量
    print(pinetree)

# 函数体外
print('\n下雪了……\n')
print( '===============开始做梦……=============\n')
fun_christmastree()     # 调用函数
print ( '===============梦醒了……===============\n')
pinetree ='我身上落满雪花,' + pinetree + ' -_- '
print(pinetree)     #输出全局变量的值

 

 

 运行结果如下:

 

 

 

 

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

  在 IDLE中创建一个名称为seckillsort.py的文件,然后在该文件中定义一个保存商品信息的列表,并输出,接下来再使用列表对象的sort()方法对列表进行排序,并且在调用sort()方法时,通过lambda表达式指定排序规则,最后输出排序后的列表。

 
代码如下:

bookinfo =[('不一样的卡梅拉(全套)', 22.50, 120),('零基础学Android', 65.10, 89.80),
           ('摆渡人', 23.40, 36.00),('福尔摩斯探案全集8册', 22.50, 128)]
print('爬取到的商品信息:\n', bookinfo)
bookinfo.sort(key = lambda x:(x[1], x[1] / x[2]))
                # 对x[1]第二个字段升序排序,有重复的则再按x[1]/x[2]折扣比例降序排列
print('排序后的商品信息:\n', bookinfo)

 


 运行结果如下:

 

 

 

 

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

  模拟导演为剧本选主角,并输出确定参演剧本主角的名字,效果如图所示:

 

 

代码如下:

def Actor(actor):
    print(actor + "开始参演这个剧本")

#调用函数
person = input("导演选定的主角是:")
Actor(person)

 

 

 运行结果如下:

 

 

 

 

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

  美团外卖的商家一般都会推出几款套餐。例如,某米线店套餐:考神套餐13元,单人套餐9.9元,情侣套餐20元。编程实现输出该米线店推出的套餐。效果如图所示。

 

 

代码如下:

def Package(package1, money1, package2, money2, package3, money3):
    print('米线店套餐如下:1.'+ package1 + '2.' + package2 + '3.' +package3)
    print(package1 + money1)
    print(package2 + money2)
    print(package3 + money3)

#调用函数
Package('考神套餐', '13元', '单人套餐', '9.9元', '情侣套餐', '20元')

 

 

 运行结果如下:

 

 

 

 

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

  根据生日可以判断出所属星座。例如:生日为7月1日,属于巨蟹座。编程实现根据输入的出生月份和日期判断所属星座。效果如图所示。

 

代码如下:

# 星座
list = ['摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座',
     '巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座']
# 1、白羊座:3月21日~4月19日    2、金牛座:4月20日~5月20日
# 3、双子座:5月21日~6月21日    4、巨蟹座:6月22日~7月22日
# 5、狮子座:7月23日~8月22日    6、处女座:8月23日~9月22日
# 7、天秤座:9月23日~10月23日   8、天蝎座:10月24日~11月22日
# 9、射手座:11月23日~12月21日  10、摩羯座:12月22日~1月19日
# 11、水瓶座:1月20日~2月18日   12、双鱼座:2月19日~3月20日
# 日期
d = [20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22]
def starSign(month, day):
    #如果日期小于月份减一就是前一个星座,否则就是本月所对应的星座
    if day < d[month-1]:
        return list[month-1]
    else:
        return list[month]

#调用函数
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))
print(str(month) + "月" + str(day) + "日星座为:" + starSign(month, day))

 

 

运行结果如下:

 

 

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

  实现将美元转换为人民币。美元与人民币之间的汇率经常变更,本实战按1美元等于6.28人民币计算。效果如图所示。

 

代码如下:

def change(dollar):
    rmb = dollar * 6.28
    return rmb

#调用函数
dollar = float(input("请输入要转换的美元金额:"))
rmb = change(dollar)
print("转换后人民币金额是:" + str(rmb))

 

 

 运行结果如下:

 

 

编写程序实现功能:判断手机号码属于移动、电信或者联通

代码如下:

#判断输入的手机号码是中国移动/连通/电信

import re
pattern1 = r'(13[4-9]\d{8})$|(14[78]\d{8})$|(15[012789]\d{8})$|(17[28]\d{8})$|(18[23478]\d{8})$|(19[578]\d{8})$'
#中国移动匹配手机号:134~139 150~152 157~159 172 178 182~184 187~188 195 197~198

pattern2 = r'(13[3]\d{8})$|(14[9]\d{8})$|(15[3]\d{8})$|(17[37]\d{8})$|(18[019]\d{8})$|(19[013]\d{8})$'
#中国电信匹配手机号:133 149 153 173 177 180 181 189 190 191 193 199

pattern3 = r'(13[012]\d{8})$|(14[56]\d{8})$|(15[56]\d{8})$|(16[6]\d{8})$|(17[56]\d{8})$|(18[56]\d{8})$|(19[6]\d{8})$'
#中国联通匹配手机号:130 131 132 145 146 155 156 166 175 176 185 186 196

while True:
    mobile1 = input("请输入您的手机号码:")
    match1 = re.match(pattern1, mobile1)
    match2 = re.match(pattern2, mobile1)
    match3 = re.match(pattern3, mobile1)
    if match1 != None:
        print(mobile1, '是有效的中国移动手机号码。')
        break
    elif match2 != None:
        print(mobile1, '是有效的中国电信手机号码。')
        break
    elif match3 != None:
        print(mobile1, '是有效的中国联通手机号码。')
        break
    else:
        print("你的电话可能属于虚拟运营商")
        break

 

 

 运行结果如下:

 

 

标签:fun,函数,person,money,bmi,如下,print,第六章
From: https://www.cnblogs.com/diana77/p/16787995.html

相关文章

  • Python第六章实例、实战
    0102  03  04    05    06   实战1     s2    s3    s4   ......
  • Python实验报告——第6章 函数
    实验报告实例01:输出每日一帖(共享版)代码如下:deffunction_tips():'''功能:每天输出一条励志文字'''importdatetime#导入日期时间类#定义......
  • python实验报告(函数)
    1.输出每日一站(共享版)  结果:   2.根据身高,体重计算BMI指数  结果:  3.根据身高,体重计算BMI指数  结果:  4.模拟结账功能———计算实付金......
  • 13 刘欣晨 2022.10.13 第六章 实例+实战
    实验 一 项目名称:     输出每日一贴 (共享版)deffunction_tips():'''功能:每天输出一条励志文字'''importdatetimemot=["今......
  • 第六章实验报告
        实验报告   课程名称:Python语言实训项目: 第六章实例和实战实训班级:21信息与计算科学1班学生姓名:郑于佳学......
  • 第六章Python实训
    test6-1    test6-2    test6-3    test6-4    test6-5    test6-6    ......
  • Linux shell 常用函数
    *以下函数或文件,在某些发行版本系统不支持,请先测试确认是否可用。 ####  生成连续的数字  ####  方式一: [1]正序:{1..16}倒序:{16..1}示例:forni......
  • 第六章 函数
    一.输出每日一贴1, 代码:deffunction_tips():   '''功能:每天输出一条励志文字   '''   importdatetime            #导入日期时间类  ......
  • php根据字符串取得 数字月份函数 php字符串和日期时间转换函数汇总
    <?php$time="2011-1-114:07:14";//字符串类型的日期,很多路径都获取到,如数据库//把字符串类型的日期转换一个时间戳echodate('n',strtotime($time));//1......
  • Javascript--变量内函数句柄
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><p>创建和使用对象方法。</p><p>对象方法作为一个函数定义存储......