函数
可重复执行的代码块,通过 函数名() 调用执行,默认返回 None
函数名 小驼峰
语法
def 函数名():
功能代码
注意
- def 是 Python 定义函数的语法
- 函数名是功能代码的标识,需要遵循标识符的命名规则
- 功能代码作为语句块,必须缩进
函数的调用
语法
函数名()
注意
- def 函数() 是定义函数,不是执行函数,函数需要调用才会执行
- 函数必须先定义后调用
- 多次执行,就多次调用
函数参数
函数参数分为形参、实参
函数返回值
如果函数执行后的结果数据需要参与后期运算,可通过 return 关键字返回函数执行的结果(返回值)
名称加强
匿名函数
用 lambda 关键词创建匿名函数,省略函数定义
语法
lambda 形参1, 形参2, ... : (函数代码语句)
冒号前是参数,冒号后是返回值
特点
- 是没有函数名的函数
- 函数体不需要写 return 返回
参数加强
主要3个:必需参数,关键字参数,默认参数
必需参数
定义函数时,如果形参没有默认值,该参数被称为 必需参数
调用时,必须以正确顺序传入实参,数量和形参一一对应
关键字参数
调用函数,给函数传递实参时,为每个实参取一个名字,这个名字就是形参的名字
作用:可交换实参的顺序
注意:关键字参数放后面
默认参数
调用函数,如果没有传递参数,则会使用默认参数
不定长参数打包
特点
- 不定长,参数个数不固定
- 打包,使用 元组 或 字典 把所有参数集合到一起
带*号参数以元组tuple形式封装并进行传递
不定长位置参数–*args(可变长度的参数)
设计多个数相加
语法
def 函数名([其他形参,] *可变形参)
"函数_注释"
功能代码
return [返回值]
函数名(值1, 值2, ...)
注意
- 变参在参数列表有且只有一个,且只能写在最后(变参**除外)
- 变参以元组进行封装传递
不定长关键字参数–**kwargs(可变长度的关键字参数)
语法
def 函数名([其他形参,] **可变形参)
"函数_注释"
功能代码
return [返回值]
函数名(关键字参数1=值1, 关键字参数2=值2, ...)
返回值加强
return关键字作用
- 把数据返回到函数的调用位置
- 终止函数继续执行
无返回值(None)
- return 仅用来退出函数的执行
- 如果函数没有明确的 return 返回,函数默认返回一个 None 值
多种返回值
根据不同情况,设定多个 return,返回不同情况的值
返回多个值
一次返回多个值,需要多个变量来保存这些返回值
语法
def 函数名(形参1, 形参2):
return 返回值1, 返回值2
变量1, 变量2 = 函数名(实参1, 实参2)
嵌套函数调用
一个函数里,调用另外的函数
变量的作用域
变量的有效范围
函数把变量分为局部变量和全局变量
- 局部变量是函数内变量
- 全局变量是函数外变量
局部变量
只在变量所定义的函数内使用,函数外和其他函数里不可被使用
调用时,开辟内存空间,函数调用结束就释放,节约空间,不受命名冲突
全局变量
默认情况
- 可被程序中任何代码访问
- 可被外部代码修改
注意
- 全局变量可被任何地方的代码访问
- 全局变量和局部变量同名,局部变量不会影响全局变量的值
global关键字
如果全局变量需要在函数中被修改,函数中使用 global 声明这个变量