什么是函数?
函数是对某一特定功能的代码块的封装
函数的定义
语法:
def 函数名(形参列表):
函数说明文档
函数体
说明:
def - python定义函数的关键字:固定写法
函数名 - 自定义命名:
标识符,不要关键字(要求);
所有的字母都小写,多个单词之间用下划线隔开;
不能用系统提供的函数名、类名
见名知义
() - 固定写法
形参列表 - 格式:参数1,参数2,...
形参 - 虚拟变量,是用来接收实参的。
函数说明文档 - 和def保存一个缩进的三个双引号引起来的注释(说明书)
函数 - 和def保持一个缩进的一条或者多条语句,实现函数功能一条或多条语句
自定义函数
第一步:确定函数的功能
第二步:根据函数的功能确定函数名
第三步:确定函数的参数
第四步:实现函数功能
第五步:确定函数返回值
第六步:写函数说明文档
函数的调用
语法:
函数名(实参列表)
说明:
函数名 - 需要调用的函数的名字(函数名必须实施已经定义过的函数的函数名)
() - 固定写法
实参列表 - 格式:数据1,数据2,...
作用:用来给形参赋值的。(真正传递到函数中使用的数据)
函数的参数
-
位置参数 (必须参数)
函数调用时,实参直接写,让实参和形参从位置上一一对应
-
关键字参数
以:形参1=值1,形参2=值2,...
保证每个参数上有值
-
位置参数和关键字参数混合
要求:位置参数必须在关键字参数的前面
-
参数默认值(形参)
定义函数的时候可以:形参=值 形式给参数赋默认值,调用函数的时候有默认值可以不用调用。
有默认值的参数必须放在,没有默认值参数的后面。
-
不定长参数
定义参数时,参数不确定就使用不定长参数。
-
在形参前加*
一个*的形参,本质就是一个元组,对应的实参作为这个元组的元素。
这个不定长参数的函数只能用位置参数传参
要在位置参数的后
-
两个**的形参,本质是字典,对应的实参作为这个字典的值。
只能用关键字参数传值。关键字作为字典的key,传入的值是字典的值。
只能放在参数列表的最后
-
返回值
从函数里面传递到函数外的数据
怎么返回数据
return 关键字后面表达式的值
- 语法:
return 参数1,参数2,...
- 说明:
return,只能出现在函数中
将数据从函数内容从函数内部扔到函数的外部
结束函数(执行函数的时候只要遇到return函数直接结束)
- 表达式:可以一个都没有,可以有一个,也可以有多个(本质返回的是元组)。没有返回值返回None
怎么使用返回的数据
返回值就是函数调用表达式的值
普通数据能做的事,函数表达式也能做。
函数调用过程
第一步:回到函数定义的位置
第二步:传参(实参给形参赋值)
第三步:执行函数体
第四步:执行完函数体,确定返回值。(a.执行完函数体中的最后一条语句 b.遇到return),确定函数返回值(执行函数时有没有遇到return,遇到则是return后的值,没有return返回值为None。
第五步:回到函数调用的位置往后执行(这个时候函数调用表达式的值就是函数的返回值)