今天在学习过程中系统梳理了 Python 函数的核心用法,内容涵盖从基础定义、匿名函数、推导式,到函数嵌套、变量作用域、多返回值与多种参数形式,再到递归函数的使用。
一、Python 函数基础回顾
通用定义格式如下:
def 函数名(形参): 函数体 return 返回值
通用调用格式如下:
变量 = 函数名(实参)
注意事项:
函数必须先定义,再调用 函数不调用不执行 函数每调用1次就执行1次 定义函数的时候如果有形参,调用函数的时候就必须传入实参 定义函数的时候有return 返回值,调用函数的时候建议使用变量接收返回值后再使用 定义函数的时候没有return 返回值,其实默认函数最后一行补充了return None(空的,没有任何意义的)
二、匿名函数 lambda 用法
知识点:
lambda表达式:简单函数的简洁写法,它又叫匿名函数。 语法形式: lambda 形参1, 形参2, ... : 单行表达式 或 函数调用
注意点:
1)匿名函数中不能使用 while 循环、for 循环,只能编写单行的表达式,或函数调用 2)匿名函数中返回结果不需要使用 return,表达式的运行结果就是返回结果 3)匿名函数中也可以不返回结果。例如: lambda : print('hello world')
三、函数的嵌套调用
总结:
- 什么是嵌套调用 在一个函数中,调用另外一个函数
- 执行流程 函数A中执行到调用函数B的语句, 会将函数B全部执行完成后,继续执行函数A的剩余内容
四、全局变量与局部变量以及global 关键字
知识点:
""" 只能在自定义函数内访问的变量就叫局部变量 在函数内外都可以访问的变量就叫全局变量 如何在自定义函数内修改全局变量? 默认修改认为定义了和全局变量同名的局部变量,需要加global声明修改是全局变量 局部变量和全局变量同名的时候,默认按照就近原则,打印的是局部变量 """
五、函数的多返回值与多种参数类型
按照返回值的顺序,写对应顺序的多个变量接收即可 变量之间用逗号隔开 支持不同类型的数据return
位置参数: 实参和形参的个数以及顺序都必须一致 关键字参数: 实参和形参的顺序可以不一致,但是个数必须一致 关键字参数传参个数: 形参变量名=实参值 缺省参数: 在定义函数时,形参位置直接设置默认值,调用函数时,实参可以不传直接用默认值 可变参数: *args: 默认把位置传参进来的数据放到args元组中 **kwargs: 默认把关键字传参进来的数据放到kwargs字典中
六、递归函数理解与简单使用
知识点
递归:就是某个函数直接或者间接地调用自身的一种设计程序思想,这样原问题的求解就转换为了许多性质相同但是规模更小的子问题。
在实际工作中,递归有多种应用场景: ① 实现复杂的数学计算,如斐波那契数列,求汉诺塔 ② 实现文件递归查询,递归查询某个目录以及子目录下的所有文件
递归三要素: ① 明确你这个函数想要干什么 对于递归,很重要的一个事就是,这个函数的功能是什么,也就是说,我们先不管函数里面的代码什么,而是要先明白,你这个函数是要用来干什么。 ② 寻找递归结束条件 所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须要找出递归的结束条件,不然的话,会一直调用自己,进入无底洞。也就是说,我们需要找出当参数为啥时,递归结束,之后直接把结果返回,请注意,这个时候我们必须能根据这个参数的值,能够直接知道函数的结果是什么。 ③ 找出函数的等价关系式 第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
七、本章学习总结与易错点回顾
本次学习系统掌握了 Python 函数的核心用法,结合黑马学习经历,进一步明确了函数在数据分析、日常开发中的实用价值,不仅理清了变量作用域、参数传递等关键知识点,也为后续 AI 大数据相关开发、数据处理工作筑牢了基础。后续将持续巩固函数用法,把所学知识运用到实际项目中,提升自身技术能力,助力后续大数据相关工作开展。
易错点:
- 匿名函数仅支持单行表达式,不可编写复杂循环、多条件判断等复杂逻辑,易误写多行代码导致报错;
- 函数调用时,形参与实参需一一对应,避免漏传、多传参数,否则会触发参数不匹配错误;
- 修改全局变量需用global声明,否则会被识别为局部变量,导致修改失败;
- 递归函数需设置明确结束条件,否则会陷入无限递归,导致程序崩溃;
- 函数返回值需合理接收,未接收时默认返回None,易误判执行结果。