函数. 就是对一个代码块或者功能的封装. 什么时候用, 什么时候执行 语法: def 函数名(): 函数体(代码块) 函数的调用: 函数名() # 所有的()都是函数的调用 函数名和变量名一样. 1.字母, 数字, 下划线 2.不能以数字开头, 更不能全是数字 3. 不能是关键字 (默写目前已经学过的关键字) 4. 不能太长 5. 有意义 6. 不要用中文 7. 驼峰体和下划线 返回值 函数在执行过程中或者执行完毕. 可以使用return返回给调用者一个结果 只要程序执行到return. 函数就会被停止 后面的内容就不会再执行. break 循环 三种情况: 1. 直接写个return或者不写return, 不返回任何内容, 接收的是None 2. return 一个变量或者值(返回值) 3. return 多个变量或者值. 返回的时候解释器会帮我们把多个返回值组装成一个tuple 接收的地方可以接收一个变量. 多个变量. 解构成多个变量 参数 函数在访问的时候. 给函数传递的一些信息, 参数写在小括号里面 1. 形参: 在函数声明的位置给出的变量的声明, 形式参数 2. 实参: 在函数调用的时候. 给函数传递的具体的值. 实际参数 参数可以有很多个.每个参数之间用逗号隔开 先说实参 1. 位置参数. 按照位置把实参赋值给形参 2. 关键字参数. 对照形参. 给每个参数赋值 3. 混合参数 位置参数和关键字参数混合着使用 必须先写位置参数, 然后才是关键字参数 关于形参: (有三种形式,今天两种) 1. 位置参数 到目前位置使用的都是位置参数 2. 默认值参数 当出现很多重复的参数的时候. 考虑使用默认值参数 默认值参数必须在位置参数后面 当调用的地方不给出值的时候. 会使用默认值
3.动态参数
1. 动态传参, 可以接收任意的参数 顺序: 位置参数 *args 默认值参数 **kwargs 形参的一种方式 1. 位置参数的动态传参 写法: *参数名 例如: *args 接收的参数是tuple类型 2. 关键字参数的动态传参. 写法: **参数名 例如: **kwargs 接收的参数是dict类型 无敌传参: def func(*args, **kwargs): pass *,** 的作用: 在形参: 聚合 在实参: 打散 2. 作用域的问题 1. globals() 获取全局作用域中的内容 2. locals() 获取局部作用域中的内容 3. 函数嵌套--函数的执行流程 所有的()表示的是函数的调用 4. global和nonlocal global: 寻找全局作用域中的内容 nonlocal: 寻找上一级作用域中的内容, 但不能是全局的 命名空间 1. 内置命名空间-> python内部的一些东西 2. 全局命名空间-> 自己定义的全局变量 3. 局部命名空间-> 函数的内部 作用域: 全局作用域:内置空间+ 全局空间 局部作用域:局部空间 globals() 全局空间中的内容 locals() 局部空间的内容 global和nonlocal global: 在局部应用全局变量 nonlocal: 外层中离他最近的一个变量(非全局)