1、函数的创建和调用
(1)什么是函数
函数就是执行特定任和以完成特定功能的一段代码
(2)为什么需要函数
-
·复用代码
-
·隐藏实现细节·提高可维护性
-
·提高可读性便于调试
(3)函数的创建
2、函数的参数传递
(1)位置实参:根据形参对应的位置进行实参传递
(2)关键字实参:根据形参名称进行实参传递
3、函数参数传递的内存分析
3、函数的返回值
(1)函数返回多个值时,结果为元组
(2)函数的返回值,如果是1个,直接返回类型
(3)如果函数没有返回值,return可以省略不写
4、函数的参数定义
(1)形参可以设置默认值:只有与默认值不符的时候才需要传递实参
(2)个数可变的位置参数
定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数。
- 使用 * 定义个数可变的位置形参
- 结果为一个元组
- 个数可变的位置参数只能有一个
(3)个数可变的关键字形参
定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参。
- 使用 ** 定义个数可变的关键字形参
- 结果为一个字典
- 个数可变的关键字形参只能有一个
(4)既有个数可变的位置参数,也有个数可变的关键字形参
在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参,要求个数可变
的位置形参放在个数可变的关键字形参之前。
5、变量的作用域
(1)局部变量
在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会变成全局变量。
(2)全局变量
函数体外定义的变量,可作用于函数内外。
6、递归函数
(1)什么是递归函数
如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数。
(2)递归的组成部分
递归调用与递归终止条件。
(3)递归的调用过程
每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间。
(4)递归的优缺点
- 缺点:占用内存多,效率低下。
- 优点:思路和代码简单。