(一)函数基础

函数:将 具有独立功能的代码块 封装为一个小模块,在需要时 调用
函数的使用包含两个步骤(先封装、后使用):
定义函数 —— 封装 独立的功能
调用函数 —— 享受 封装 的成果
函数的作用 :提高编写的效率以及代码的 重复使用
(二)函数基本使用

(1)函数的定义

定义函数格式:

def 函数名():
函数封装的代码
……
1
2
3
def 是英文 define 的缩写
函数名称 应该能够表达 函数封装代码 的功能,便于后续调用
函数名称 的命名应该 符合 标识符的命名规则
由 字母、下划线 和 数字 组成
不能以数字开头
不能与关键字重名
(2)函数调用

调用函数很简单的,通过 函数名() 即可完成对函数的调用

定义完成之后,若不主动调用函数,则函数是不会主动执行的
(三)函数的参数

(1)参数的使用

在函数名的后面的小括号内部填写 参数
多个参数之间使用 , 分隔
(2)参数的作用

函数的参数,增加函数的 通用性,针对 相同的数据处理逻辑,能够 适应更多的数据
在函数 内部,把参数当做 变量 使用,进行需要的数据处理
函数调用时,按照函数定义的参数顺序,把 希望在函数内部处理的数据,通过参数 传递
(3)形参和实参

形参:定义 函数时,小括号中的参数,用于接收参数,在函数内部 作为变量使用
实参:调用 函数时,小括号中的参数,将数据传递到 函数内部
(四)函数的返回值

返回值 是函数 完成工作后,返回 给调用者的 结果
在函数中使用 return 关键字可以返回结果
调用函数一方,可以 使用变量 来 接收 函数的返回结果
注意:return 表示返回,后续的代码都不会被执行
return 的作用:
返回一个对象
阻断代码执行
(五)使用模块中的函数

模块 就好比是 工具包,要想使用这个工具包中的工具,就需要 导入 import 这个模块

每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块

在模块中定义的 全局变量 、 函数 都是模块能够提供给外界直接使用的工具

可以 在一个 Python 文件 中 定义 变量 或者 函数

然后在 另外一个文件中 使用 import 导入这个模块

导入之后,就可以使用 模块名.变量 / 模块名.函数 的方式,使用这个模块中定义的变量或者函数

模块名也是一个标识符
标示符可以由 字母、下划线 和 数字 组成
不能以数字开头
不能与关键字重名
(六)函数进阶

(1)函数参数和返回值的作用

如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部
如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值
1、无参数,无返回值

此类函数,不接收参数,也没有返回值,应用场景如下:

只是单纯地做一件事情,例如 显示菜单
在函数内部 针对全局变量进行操作,例如:新建名片,最终结果 记录在全局变量 中
注:

如果全局变量的数据类型是一个 可变类型,在函数内部可以使用 方法 修改全局变量的内容 —— 变量的引用不会改变
在函数内部,使用赋值语句 才会 修改变量的引用
2、无参数,有返回值

此类函数,不接收参数,但是有返回值,应用场景如下:

采集数据,例如 温度计,返回结果就是当前的温度,而不需要传递任何的参数
3、有参数,无返回值

此类函数,接收参数,没有返回值,应用场景如下:

函数内部的代码保持不变,针对 不同的参数 处理 不同的数据
4、有参数,有返回值

此类函数,接收参数,同时有返回值,应用场景如下:

函数内部的代码保持不变,针对 不同的参数 处理 不同的数据,并且 返回期望的处理结果
(2)函数的返回值 进阶

在程序开发中,有时候,会希望 一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
返回值 是函数 完成工作后,最后 给调用者的 一个结果
在函数中使用 return 关键字可以返回结果
调用函数一方,可以 使用变量 来 接收 函数的返回结果
提示:如果一个函数返回的是元组,括号可以省略
技巧

在 Python 中,可以 将一个元组 使用 赋值语句 同时赋值给 多个变量
注意:变量的数量需要和元组中的元素数量保持一致
result = temp, wetness = measure()
1
(七)函数的参数 进阶

(1)不可变和可变的参数

无论传递的参数是 可变 还是 不可变
只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量的引用,不会影响到 外部变量的引用
1、缺省参数

定义函数时,给 某个参数 指定一个默认值,具有默认值的参数就叫做 缺省参数
调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用定义函数时指定的 参数默认值
函数的缺省参数,将常见的值设置为参数的缺省值,从而 简化函数的调用
2、指定函数的缺省参数

在参数后使用赋值语句,可以指定参数的缺省值
提示

缺省参数,需要使用 最常见的值 作为默认值!
如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!
3、缺省参数的注意事项

1) 缺省参数的定义位置

必须保证 带有默认值的缺省参数 在参数列表末尾
2) 调用带有多个缺省参数的函数

在 调用函数时,如果有 多个缺省参数,需要指定参数名,这样解释器才能够知道参数的对应关系!
(2)多值参数

1、定义支持多值参数的函数

有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数
python 中有 两种 多值参数:
参数名前增加 一个 * 可以接收 元组 如:*args
参数名前增加 两个 * 可以接收 字典 如:**kwargs
2、元组和字典的拆包

在调用带有多值参数的函数时,如果希望:
将一个 元组变量,直接传递给 args
将一个 字典变量,直接传递给 kwargs
就可以使用 拆包,简化参数的传递,拆包 的方式是:
在 元组变量前,增加 一个 *
在 字典变量前,增加 两个 *
(八)函数的递归

函数调用自身的 编程技巧 称为递归
递归函数的特点

一个函数 内部 调用自己
代码特点

函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同
当 参数满足一个条件 时,函数不再执行
非常重要,通常被称为递归的出口,否则 会出现死循环!

————————————————
版权声明:本文为CSDN博主「Noria 107」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Noria107/article/details/113761074

posted on 2022-08-06 10:28  辰逸1  阅读(12)  评论(0编辑  收藏  举报