美文网首页
day09-python中的函数

day09-python中的函数

作者: d4lx | 来源:发表于2018-08-30 20:03 被阅读0次

    01-匿名函数

    1、匿名函数:
    声明格式:
    函数名 = lambda 参数列表:返回值
    说明:
    函数名:变量名
    lambda:声明匿名函数的关键字
    参数列表:参数名1,参数名2,
    冒号:固定写法
    返回值:表达式,表达式的值就是返回值。

    2、匿名函数调用
    匿名函数的调用和普通函数一样
    格式:函数名(实参列表)

    3、补充:python中的普通函数可以有多个返回值,就是在return后返回多个值,多个值之间用逗号隔开;最终以元祖的形式返回;

    02-变量的作用域

    1、变量的调用过程是一个压栈的过程;
    每次调用一个函数,系统就会在内存区域的栈区间去开辟空间,保存函数调用过程中产生的数据;
    当函数调用完成后,对应的栈区间会自动销毁;

    2、作用域:指的就是一个变量能够使用的范围

    3、全局变量和局部变量
    a、全局变量:声明在函数和类的外面的变量都是全局变量。
    全局变量的作用域:从声明开始到文件结束;
    b、局部变量:声明在函数中或者类中的变量就是局部变量
    局部变量的作用域:从声明开始到函数结束,或者从声明开始到类结束;
    注意:函数的参数是声明在函数中的局部变量;

    4、变量同名的问题:
    如果全局变量和局部变量同名,那局部变量的作用域内使用的是局部变量的值

    global关键字:是在函数中声明一个全局变量
    global 变量名
    变量名 = 值
    

    例子:

    num2 = 10
    def fun4():
        # 在局部作用域内修改全局变量;
        global num2 # 说明从这句开始后面的num2是全局变量;
        num2 = 199
        print(num2)
    fun4()
    print(num2)
    
    nonlocal关键字:是在函数中声明一个外层局部的中的局部变量;
    nonlocal 变量名
    变量名 = 值
    
    def fun5():
        nn = 10
        print(nn)
        # 函数中可以声明函数
        def fun6():
            # 相当于局部中的全局变量
            nonlocal nn
            nn = 20
            print(nn)
    fun5()
    

    03-递归函数

    1、递归函数
    就是在函数的函数体中调用函数本身,这样的函数就是递归函数

    2、写递归函数的步骤
    步骤1:找临界值(找到让循环结束的值/找到能够确定函数结果值)
    步骤2:找关系
    步骤3:找f(n)和f(n-1)的关系

    3、在实际开发中,递归是能不用就不要用;递归需要不断的调用函数,开辟空间,消耗内存;

    04-模块和包的使用

    1、模块:就是对变量、函数、类进行封装;一个py文件就是一个模块

    2、使用模块的格式:

    a、 import 模块
    通过模块.内容的形式去使用模块中的内容(能够使用的是全局变量、函数、类)
    b、from 模块 import 模块中的内容
    可以直接使用模块中的内容
    
    c.from 模块 import *  --- 将模块中的所有内容都导入
    

    3、对模块进行重命名
    格式:

    import 模块 as 新名字
    form 模块 import 内容 as 新名字;
    

    将不希望被别的模块导入(执行)的代码放到模块的这个if语句中;"if __name__ == '__main__':"
    建议:函数的声明、类的声明一般写在if的外面,其他的写在if里面,(想要被外部使用的全局变量也写在外面)

    每个模块都有一个''__name__"属性,这个属性的值默认就是当前模块的文件名
    当当前模块正在被执行(直接在当前这个模块中点了run)的时候,''__name__''属性的值是"__main__"

    相关文章

      网友评论

          本文标题:day09-python中的函数

          本文链接:https://www.haomeiwen.com/subject/jmwdwftx.html