函数--封装代码块

本文探讨了函数作为代码封装工具的重要性,通过实例说明如何利用函数提高代码复用性和可维护性,阐述函数在程序设计中的核心作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#什么是函数?函数就是将一段代码写在一起,如果需要使用,直接调用即可
#就是封装一段功能代码的代码块,这段代码可以被多次使用

# type()
# input()
# import random
# random.randint()

#def   define:定义
#函数名称命名规范: 单词全部小写,多个单词之间用_下划线连接,函数名要和实现的功能有关系,做到见名知意
#def 函数名(参数列表)
#    函数功能代码
def eat():
    print('先去买菜')
    print('洗菜')
    print('切菜')
    print('炒菜')
    print('吃饭')
    print('刷碗')
#函数要想执行,必须要调用
eat()

#带有1参数的函数
#参数:执行函数所需要的一些数据
#例如去商店买水,买水就可以看做是一个功能函数
#参数的第一种类型,必要参数,必须要传递参数
def buy_water(money,name):
    print('你只给了%s块钱,你要买%s'%(money,name))

#调用带有1个参数的函数
buy_water(10,'农夫山泉')
#关键字参数  这样就不必按照参数定义时顺序进行传递了
buy_water(name='农夫山泉',money=10)

#缺省参数 参数不是必须要传递的,参数会有一个默认值,如果调用时没有传递该参数,那么参数就是默认值,如果传递过来了,参数就是传递过来的这个值
def sleep(time=0,age=20,name='张三'):
    print('你睡了%s小时'%time)
#传递参数 time变成20
sleep(20)
#不传递参数 time就是默认值0
sleep()

函数的应用:

'''
    写四个函数 分别包含bmi体重指数计算器、出租车费用计算器、个税计算器、猜数字游戏
'''
# 使用到python中的内置的random模块
#  引入random模块
import random



#体重计算器
def bmi():
    while True:
        # 声明变量 身高 体重
        height = input('请输入您的身高(m):')
        weight = input('请输入您的体重(kg):')
        # 如果输入的身高或者体重有一个为0,直接结束循环
        # or 或的关系 关键字,多个条件时,只要有一个条件成立即可执行代码块内容
        if height == '0' or weight == '0':
            print('您输入的数据有误,程序已结束!')
            # 结束循环
            break
        # and 与的关系 关键字 多个条件时,条件必须同时成立才行
        if height == '1.8' and weight == '70':
            print('微信扫一扫吧')
        # not 表示非的关系

        # 将输入的身高体重转换为小数float类型
        height = float(height)
        weight = float(weight)
        # 体重指数(BMI)=体重(kg)/(身高*身高)(m)
        bmi = weight / (height * height)
        '''

        '''
        if bmi < 18.5:
            print('体重过轻...')
        elif 18.5 <= bmi <= 23.9:
            print('标准身材!')
        elif 28 <= bmi <= 32:
            print('大胖子')
        else:
            print('超级大胖子')
#出租车费用计算
def calc_taxi():
    while True:
        # 快速多行缩进,可以选中需要缩进的行,按tab键
        km = input('请输入您行驶的公里数(km),输入0结束:')
        # 2.将公里数转换为float类型
        km = float(km)
        # 3.根据不同的公里数计算需要的车费
        # 如果km的值为0,结束循环
        if km == 0:
            print('欢迎下次使用!Bye bye!')
            break
        elif km <= 2:
            print('起步价,8元')
        elif 2 < km <= 12:
            price = 8 + (km - 2) * 1.2
            # 占位符 %f 专门用来给float类型的数据做占位符
            # %.2f保留小数点后两位
            print('共行驶%.2f千米,共%.2f元' % (km, price))
        else:
            price = 8 + 10 * 1.2 + (km - 12) * 1.5
            print('共行驶%.2f千米,共%.2f元' % (km, price))
#个税计算器函数
def calc_tax():
    while True:
        # 输入工资
        gz = input('请输入您的税前工资(输入0结束):')
        # 将工资转换为float类型
        gz = float(gz)
        # 如果输入的工资为0,结束循环
        if gz <= 0:
            print('你不用交五险一金,也不用交税!')
            # break结束循环
            break
        # 如果工资大于或者等于7662 五险一金 = 7662 * 五险一金比例(22.5 %)
        if gz >= 7662:
            wxyj = 7662 * 0.225
        else:
            # 如果工资小于7662 五险一金=工资*五险一金比例
            wxyj = gz * 0.225
        # 应纳税所得额=工资-五险一金-起征点(3500)
        ynssde = gz - wxyj - 3500
        # 声明两个变量 税率、速算扣除数
        shuilv = 0
        sskcs = 0
        # 判断应纳税所得额所在的阶梯
        if ynssde <= 0:
            print('您不用交税!')
        elif ynssde <= 1500:
            shuilv = 0.03
        elif ynssde <= 4500:
            shuilv = 0.1
            sskcs = 105
        elif ynssde <= 9000:
            shuilv = 0.2
            sskcs = 555
        elif ynssde <= 35000:
            shuilv = 0.25
            sskcs = 1005
        elif ynssde <= 55000:
            shuilv = 0.3
            sskcs = 2755
        elif ynssde <= 80000:
            shuilv = 0.35
            sskcs = 5505
        else:
            shuilv = 0.45
            sskcs = 13505
        # print(shuilv)
        # print(sskcs)
        # 计算税额 税额=应纳税所得额*阶梯税率-速算扣除数
        shuie = ynssde * shuilv - sskcs
        # print(shuie)
        # 计算到手工资
        my_money = gz - wxyj - shuie
        print('税前工资:%.2f' % gz)
        print('缴纳税额:%.2f' % shuie)
        print('五险一金:%.2f' % wxyj)
        print('到手工资:%.2f' % my_money)
#猜数字函数
def guess_num():
     # 随机生成一个0~100的整数,作为正确答案
     number = random.randint(0, 100)
     print(number)
     # 在while中写代码
     # 每局只能 猜测5次,就退出游戏
     index = 1
     while index in range(1, 6):
         # 输入一个0~100的整数,input输入的是字符串
         gus_num = input('请输入您猜的数字(0~100):')
         # 将输入的字符串转换为整数类型
         gus_num = int(gus_num)
         # 只要输入的数字不在0~100的范围,重新输入
         while gus_num < 0 or gus_num > 100:
             # 重新输入
             gus_num = input('输入的数字不在范围,请重新输入:')
             # 转换为整数类型
             gus_num = int(gus_num)
         # 和正确答案数字做对比
         if gus_num > number:
             print('您猜大了')
         elif gus_num < number:
             print('您猜小了')
         else:
             print('恭喜您猜对了')
             # index +=1    只可以玩5次游戏
             # 如果猜对了,给两个选项,1.继续玩 2.退出
             print('1.继续玩')
             print('2.退出程序')
             # 输入一个选项
             num = input('请选择您的操作:')
             # !=不等于 只要输入的选项不符合要求,重选
             while num != '1' and num != '2':
                 # 选项不存在,请重选
                 num = input('选项不存在,请重选:')
             # num=int(num)
             # 继续玩
             if num == '1':
                 # 重置正确答案
                 #index = 1
                 number = random.randint(0, 100)
                 print(number)
             else:
                 # 结束循环,退出程序
                 break
         index += 1
         if index == 6:
             print('您猜测次数大于5次,游戏结束!')
while True:
    print('1.BMI体重指数计算器')
    print('2.出租车费用计算器')
    print('3.税额计算器')
    print('4.猜数字游戏')
    print('0.退出程序')
    #选择对应的选项
    num=input('请选择您的操作:')
    #转换为整数;类型
    num=int(num)
    #range(开始位置,结束位置)范围
    #判断选项是否在范围内,如果不在就重新选择
    while num not in range(0,5):
        num=input('选项不存在,请重选:')
        num=int(num)
    if num==1:
        #调用体重指数计算器函数
        bmi()
    elif num == 2:
        #调用出租车费用计算器
        calc_taxi()
    elif num==3:
        #个税计算器
        calc_tax()
    elif num==4:
        #猜数字
        guess_num()
    else:
        break


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值