函数

1.函数

  • 函数是代码的一种组织形式

  • 函数的使用

    • 函数使用需要先定义
    • 定义一个函数
    • 只是定义不会被执行;def关键字,后跟一个空格;函数名,自己定义,通俗易懂;后面的括号冒号不能省;所有代码缩进
    • 使用函数,俗称调用
    • 直接打出函数名

    函数的参数与返回值

  • 参数 负责给函数传递一些必要的数据与信息

    • 形参 (形式参数):在函数定义时,没有具体值,只是一个占位符
    • 实参 (实际参数):在调用函数输入的值
  • 返回值 :调用函数的时候执行的一个结果

    • return,None返回结果
    • -return None表示结束
    • 函数一旦执行return,则函数立即结束

    help函数

    • 提供帮助

    九九乘法表

for o in range(1,10):
             for i in range(1,o + 1):
                        print(o * i,end="  ")
             print()

end参数,在print中,将一列改为一行
换行,print()

2.参数分类

  • 普通参数/位置参数
  • 默认参数
  • 关键字参数
  • 收集参数
普通参数
  • 定义的时候直接定义变量名

  • 调用的时候直接把变量或者值放入指定位置

       def 函数名(参数1,参数2, ....):
           函数体
    
       调用,调用的时候,具体指参考的是位置,按位置赋值
       函数名(value1,value2,......)
    
默认参数
  • 形参带有默认值

  • 调用的时候,如果没有对相应形参赋值,则使用默认值

       def func_name(p1=v1,p2=v2......):
          func block
       调用1
        func_name()
    
       调用2
      value1 = 100
      value2 = 200
      func_name(value1,value2......)
    
关键字参数
  • 不容易混淆,一般实参和形参只是按照位置一一对应即可,容易出错

  • 使用关键字参数,可以不考虑参数位置

     def func(p1=v1, p2=v2, ......):
        func_body
     调用,可以不考虑参数位置
     func(p1=value1, p2=value2, ......)
    
收集参数
  • 把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中

  • 参数名不一定要求写为args,但是约定俗成

  • 参数名前要有星号*

  • 收集参数可以和其他参数共存

  • 一般采用for循环,对list,tuple进行工作

     def func_name1(*args):
        func_body
     调用
     func_name1(p1, p2, p3, .....)
    
收集参数之关键字收集参数
  • 把关键字参数按照字典dict格式存入收集参数

  • 是为了解决在调用关键字参数,形参为收集参数的问题上会出错的情况

  • 参数名kwargs,约定俗成

  • 参数名前要有两个星号**

  • 访问时注意for循环,注意使用方式

     def func(**kwargs):
       func_body
     调用
     func(p1=v1, p2=v2, p3=v3, ...)
    

3.有关收集参数的问题

1.收集参数混合使用的顺序问题
  • 收集参数,关键字参数,普通参数,默认参数可以混合使用
  • 使用原则就是,普通参数和关键字参数优先
  • 定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
2.集参数的解包问题
  • 把参数放入list或者dict中,直接把list/dict中的值放入收集参数中
  • 对于dict解包,需要在前输入一个星号;对dict进行解包,需要在前加入两个星号*
  • 语法:查看案例

4.函数文档

  • 函数的文档的作用是对当前函数提供使用相关的参考信息
  • 文档的写法:
    • 在函数内部开始的第一行使用三引号字符串定义符
    • 一般具有特定的格式
    • 参看案例
  • 文档查看
    • 使用help函数,形如 help(func)
    • 使用__doc__,查看案例

5.变量作用域

  • 变量有作用范围限制
  • 分类:按照作用域分类
    • 全局(global):在函数外部定义
    • 局部(local):在函数内部定义
  • 变量的作用范围:
    • 全局变量:在整个全局范围都有效
    • 全局变量在局部可以使用(即函数内部可以使用函数外部定义的变量)
    • 局部变量可以在局部范围使用,在全局范围无法使用
    • !即内部可以使用外部的变量,外部不能使用内部的变量 # 有!在前的是自己总结
  • LEGB原则(现在只了解,不必知道其含义)
    • L(local) 局部作用域
    • E(Enclosing function locale) 外部嵌套函数作用域
    • G(Global module) 函数定义所在模块作用域
    • B(Buildin) python内置魔抗的作用域

提升局部变量为全局变量

  • 使用global
  • 可以使用同一个global语句指定多个全局变量。例如global x, y, z
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值