• 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
        递归函数
            在一个函数都函数体内调用该函数本身
            递归函数必须存在调用与终止条件
            每递归调用一次函数,都会在栈内存分配一个栈帧
            每执行完一次函数,都会释放响应都空间
            缺点:占用内存多,效率底
            优点:思路和代码简单
    1. # 阶乘
    2. def fac(n):
    3. if n == 1:
    4. return 1
    5. else:
    6. return n * fac(n - 1)
    7. # print(fac(6))
    8. # 斐波那契数列
    9. def fib(n):
    10. if n == 1 or n == 2:
    11. return n
    12. else:
    13. return fib(n - 1) + fib(n - 2)

     

     

     

  • 相关阅读:
    阿里云RDS CPU100%排查
    【无标题】
    推荐收藏!Python 史上最全第三方库收集(800+)
    扩散模型浅析
    嘉立创EDA的一些使用技巧
    风控模型中有多个目标需要预测怎么办?来看看这份分类实操内容
    你是怎么看待程序员不写注释这一事件的呢?
    基于多进制准循环稀疏校验矩阵构造方法的LDPC编译码实现
    ADPCM(自适应差分脉冲编码调制)的原理和计算
    torch、(三) Random sampling
  • 原文地址:https://blog.csdn.net/fanlixing6/article/details/126944079