1. 什么是函数(function)
2. 函数的分类
1)系统函数(内置函数):
- 系统已经实现的函数(已经造好的机器),程序员只需要调用就行
- 例如:print函数、input函数、len函数、sum函数、max函数等
2)自定义函数:
3. 函数的声明(定义):“造机器”
1)语法
def 函数名(形参列表):
函数说明文档
函数体
'''
函数说明文档(功能说明)
:param num1:参数说明
:param num2:参数说明
:return:返回值说明
'''
2)说明
-
def:python声明函数的关键字
-
函数名:程序员自己命名,是标识符,不能是关键字;和变量名要求一样;见名知义(看到函数名大概知道函数的功能)注意:python中不支持函数的重载(名字相同的函数只能有一个)
-
():固定写法
-
形参列表:变量名1,变量名2,变量名3...(根据情况变量名的个数可以是0个、1个或者多个);形参的作用是将函数外面的数据传递到函数的里面
-
::固定写法
-
函数体:和def保持一个缩进的一条或者多条语句(实现函数功能的代码块)
3)初学者声明函数的步骤
- 第一步:确定函数的功能
- 地二步:根据功能确定函数名
- 第三步:确定形参(看实现函数的功能需不需要从外面传值,如果需要传值,需要几个)
- 第四步:实现函数的功能
- 第五步:确定返回值
- 注意:函数声明的时候,函数体不会执行(函数调用的时候才会执行函数体)
4. 函数的调用:“使用机器”
1)语法
函数名(实参列表)-------函数调用表达式
2)说明
-
函数名:已经声明过的函数
-
():固定写法
-
实参列表:数据1,数据2,数据3...(实参是用来给形参赋值)
- 函数调用的作用:执行循环体,获取返回值
3)函数的调用过程(重要!!!)
-
第一步:回到函数声明的位置
-
第二步:用实参给形参赋值。(这个过程又叫传参, 传参要保证每个形参都有值)
-
第三步:执行函数体
-
第四步:执行完函数体(函数体执行完或者执行过程中遇到return),确定函数返回值(看执行函数的过程中有没有遇到return,如果遇到了,return后面表达式的值就是函数的返回值;如果没有遇到return,函数的返回值就是None)
-
第五步:回到函数调用的位置,接着往后执行(这个时候函数调用表达式的值就是函数的返回值)
5. 函数的参数:“原材料”
-
调用函数的时候根据实参的写法分为位置参数和关键字参数
1)位置参数(实参)
2)关键字参数(实参)
- 以'形参名1=值1, 形参名2=值2...'格式来确定实参
- 注意:如果既有位置参数又有关键字参数,位置参数必须写在关键字参数前面
3)参数默认值(形参)
- 声明函数的时候,可以给形参赋默认值
- 有默认值的形参,在调用函数的时候可以不用给这个形参赋值
- 注意:声明的时候有默认值的参数要放在没有默认值的参数的后面
4)参数的类型说明(形参)
- python中类型只有说明的作用,没有约束的作用
- 说明方式:
a.参数赋默认值
b.参数名:类型
5)不定长参数(形参)
- 形参的参数不确定
- 声明函数的时候,在形参的前面加 * ,那么这个参数就变成不定长参数,可以同时接收多个位置实参(将这个参数变成元组)
- 声明函数的时候,在形参的前面加 ** ,那么这个参数也会变成不定长参数,可以同时接收多个关键字实参(将这个参数变成字典)
-
注意:不带 * 的参数要放在带 * 参数的前面
6. 函数的返回值:“产物”
- 返回值就是return关键字后面表达式的值,就是函数调用表达式的值
1)return
- return是函数体中的关键字(只能出现在函数体)
- 作用:结束函数,确定函数返回值
2)什么时候需要返回值
- 如果实现函数的功能会产生新的数据,就可以把这个数据作为函数返回值
- return 返回值1,返回值2,...(可以有多个返回值,用逗号隔开,结果是个元组)