12.函数

函数:
    什么是函数:
        函数就是执行特定任务以完成特定功能的一段代码
    为什么需要函数:
        复用代码
        隐藏实现细节
        提高可维护性
        提高可读性
        便于调试
    函数的创建
        def 函数名([输入参数]):
            函数体
            [return xxx]
    参数传递
        位置实参:根据位置进行实参传递
        关键字实参:根据形参名称进行实参传递
    返回值
        1。可以不需要返回值,省略return
        2。返回单个类型数据  return 1
        3。返回多个数据,则为元组类型  return 1,2,3
    参数定义
        可以给形参设置默认值
        个数可变的位置参数 *args
            定义函数时,看你无法确定传递的位置实参的个数时,可以使用位置参数
            使用 *定义个数可变的位置形参
            结果为一个元组
        个数可变的关键字形参 **args
            定义函数时,无法确定传递的实参的个数时,使用可变的关键字形参
            使用 ** 定义个数可变的关键字形参
            结果为一个字典
        可变的位置/关键字参数,只能为1个
            定义函数时,如果个数可变的关键字形参和位置形参都需要时,位置形参要放到关键字形参前面
                def fun(*agrs1, **args2):
                    pass
    函数的调用
        def fun(a,b,c):
            pass
        1。调用函数传入实参
        fun(10,20,30)
        2。将列表中的元素都转换为位置实参传入 使用 *
        list1 = [11,22,33]
        fun(*list1)
        3。关键字实参传入
        fun(a=100,b=200,c=300)
        4。将字典的键值对转换为关键字实参 使用 **
        dic1 = {'a':111,'b':222,'c':333}
        fun(**dic1)
        5。必须要使用关键字参数传递
        def fun(a,b,*,c,d) # *之后的参数,在函数调用时,只能采用关键字参数传递
    变量作用域
        全局变量:在函数内部和外部都可以使用
        局部变量:在函数内定义都变量可以在函数内使用
        在函数内定义全局变量时,需使用关键词 global
    递归函数
        在一个函数都函数体内调用该函数本身
        递归函数必须存在调用与终止条件
        每递归调用一次函数,都会在栈内存分配一个栈帧
        每执行完一次函数,都会释放响应都空间
        缺点:占用内存多,效率底
        优点:思路和代码简单

# 阶乘
def fac(n):
    if n == 1:
        return 1
    else:
        return n * fac(n - 1)


# print(fac(6))

# 斐波那契数列
def fib(n):
    if n == 1 or n == 2:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值