笔记20210511函数进阶

函数进阶课堂笔记

  1. 函数的参数

    1. 位置参数与关键字参数

      1. 根据实参提供方式不同,将实参分为位置实参和关键字实参

        位置实参:调用函数时,让实参和形参在位置上一一对应

        关键字参数:调用函数的时候以’形参名 = 值’的形式确定形参对应的实参

        位置参数与关键字参数混用:位置参数必须在关键字参数之前,且保证每个参数都有一个赋值

    2. 参数默认值

      1. 在定义函数时,直接对形参进行赋值,有默认值的函数,在调用的时候可以不用传参
      2. 如果形参没有默认值,有默认值的参数放在没有默认值参数之后
    3. 参数类型说明

      1. 无默认值参数类型说明——格式: 参数: 类型名

        例如:def func(x:str, y)

      2. 有默认值参数,默认值类型就是参数对应类型

    4. 不定长参数(*形参或者**形参)

      1. 带*的不定长参数:在某个形参前面加星号,那么这个形参就是不定长参数,就可以接受任意多个实参。

      2. 带*的参数本身就是一个元组,对应的实参就是元组中的元素

        注意:带*的不定长参数对应的实参必须位置参数传参

        例如:def func(*x):

        ​ print(x)

        ​ func(1,2,3,4)

      3. 定长参数在不定长参数前,定长和不定长都使用位置参数传参

      4. 当定长参数在不定长参数后时,不定长参数必须是关键字参数传参

        例如:def func(*, a,b,c)

        ​ pass

        ​ func(a = 1, b = 2, c = 3)

      5. 带**的不定长参数:可以接受任意多个实参

        1. 带**的参数本质就是一个字典,对应的关键字参数就是字典的键对值
        2. **的不定长参数对应的实参必须使用对应的参数传参
      6. 定长参数必须放在**不定长参数前,定长参数既可以使用位置参数,也可以使用关键字参数

      7. 带*的不定长参数,和带**的不定长参数可以一起使用,一个星号的不定长参数必须放在两个星号的不定长参数之前

      8. 定长参数在带*的不定长参数后,星号后面的定长参数必须是用关键字参数传参

      总结:

      ​ 1)*参数——本质是元组(必须是位置参数,个数不限)

      ​ 2)**参数——本质是字典(必须是关键字参数,个数不限)

      ​ 3)*参数必须在**参数之前

  2. 函数返回值

    1. 返回值

      返回值的作用就是将函数内部的数据传递到函数外部

    2. 怎么确定函数返回值——怎样将函数内部的数据传递到函数外包部

      在函数体中用return关键字来返回返回值(一个函数只有一个返回值,有多个返回值时,以元组类型返回)

    3. 什么时候需要返回值:如果函数的功能产生了新的数据,将新的数据返回

    4. 怎样获取函数返回值

      1. 获取函数调用的表达式的值,就是获取函数返回值
      2. 函数调用表达式——调用函数的语句
      3. 函数调用表达式的值,就是函数的返回值
    5. 如果函数体中没有return或者return后面没有值,则返回值为None

    6. python函数只有一个返回值,多个函数以元组形式返回

  3. 变量作用域

    1. 变量作用域

      已经定义过的变量能作用的范围,分为全局变量和局部变量

    2. 全局变量

      定义:没有定义在函数或者类里边的变量就是全局变量

      作用域:从定义开始到程序结束的任何位置都能使用

    3. 局部变量

      定义:之定义在函数里边的变量

      作用域:从开始到函数结束(只作用在函数中)(形参也是局部变量)

    4. 函数调用过程就是压栈过程

      调用函数的时候,系统会自动在栈区间为这个函数创建一个临时栈区,用来保存函数中产生的数据(局部变量)

      当函数调用结束后,这个临时栈区间会自动释放(释放之前会将返回值传递到临时栈区间外部)

    5. gloabl

      1. 可以在函数内部定义全局变量

      2. 使用范围:在函数中修改一个全局变量的值或者子啊函数定义的一个全局变量

        形式:gloabl 变量名

        ​ 使用变量

    例:def fun(c=3):
            global m
            m = 30    # 在函数中修改全局变量的值,需要先用gloabl进行说明
            print(m)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值