12.函数
12.1什么是函数
- 函数的概念:函数就是对实现某一特定功能的代码的封装
- 函数分类:
- 系统函数 - 由Python创建好的函数,例如:print、input、type等
- 自定义函数 - 由程序员自己创建的函数
12.2定义函数
-
语法: def 函数名(形参列表):
函数说明文档
函数体
-
说明:
- def - 关键字;固定写法
- 函数名
- 有程序员自己命名(要求:是标识符;不能是关键字。规范:见名知意
- 所有的字母都是小写,多个单词之间用下划线隔开
- 不使用系统的函数名、类名和模块名)
- () - 固定写法
- 形参列表
- 已’变量名1, 变量名2, 变量名3, …'格式存在
- 每一个变量就是一个形参,如果不需要形参括号里就什么都不用写
- 形参是用来将函数外部的数据传递到函数内部
- 需不需要形参就看实现函数的功能需不需要额外的数据
- : - 固定写法
- 函数说明文档 - 文档注释
- 函数体
- 和def保持一盒缩进的一条或者多条语句
- 函数体就是实现函数功能的代码
12.3函数调用
-
语法: 函数名(实参列表) -
说明:
- 函数名 - 需要使用的函数名字。(函数名必须是已经定义过的函数的函数名)
- () - 固定写法
- 实参列表
- 多个数据用逗号隔开:数据1, 数据2, 数据3, …
- 原则上定义函数的时候有多少个形参,调用函数就需要多少个实参
-
函数的调用过程
- 第一步:回到函数定义的位置,用实参给形参赋值(传参)
- 第二步:执行函数体
- 第三步:确定函数返回值
- 第四步:回到函数调用的位置,接着往后执行
-
重要结论
- 定义函数的时候不会执行函数体,调用数据才会执行函数体
- 调用函数回执行函数体(调用多少次就执行多少次)
- 每个实参可以是任何有结果的表达式
12.4函数返回值
-
返回值的作用
- 将函数内部的数据传递到函数外部
- 提前结束函数(在执行函数体的时候,如果遇到return,那么函数直接结束)
-
怎样将一个数据作为函数的返回值
- return 需要返回的数据(需要从函数内部传递到函数外部的数据)
-
怎样在函数外部获取函数返回值
- 获取函数调用表达式的值,就是获取函数的返回值
- 返回值能做的事情,函数调用表达式都可以做
-
位置参数和关键字参数
- 位置参数 - 直接将多个数据用逗号隔开,让实参和形参从位置上一一对应
- 关键字参数 - 以’形参=实参’的形式传参
-
参数默认值
- 定义函数的时候可以通过’形参=数据’给参数赋默认值,调用函数的时候有默认值的参数可以不用传参
- 定义函数的时候可以只给部分参数赋默认值,那么这个时候没有默认值的参数必须在有默认值的参数前面
-
参数类型说明和返回值类型说明
-
不定长参数
- 在参数名前加*,那么这个参数就可以同时接受多个实参(必须是位置参数)
- 原理:带*的参数会变成一个元组,接受到的实参回变成元组中的元素
- 注意:带*的不定长参数在传参的时候只能用位置参数
- 如果定长参数在不定长参数后面,定长参数在传参的时候必须使用关键字参数
- 定义函数的时候,如果函数中有一个独立的*,它的作用是让你在调用这个函数的时候*后面的参数必须使用关键字传参
- 在参数名前加**,那么这个参数就可以同时接受多个实参(必须是关键字参数)
- 原理:带*的参数会变成一个字典,接受到的实参回变成字典中的元键值对
|