返回值函数
一个函数除来可以完成一定功能之外,还可以按需要返回一些内容
函数中使用 return 关键字来指定返回数据,可以返回任意类型的数据
函数的返回值,会把数据返回到调用处,可以使用变量接收,或其它处理
变量作用域
全局变量:在函数内外都可以使用的变量
在函数内部使用 global 直接定义的变量,就是全局变量,函数内外都可以使用
在函数外定义的变量,在函数内使用 global 关键字进行声明,那么也是全局变量
在函数外定义的变量,函数可以访问,但是不能更改
局部变量:在函数内部可以使用的变量
函数内定义的变量,局部变量,在函数外不能使用
nonlocal
在内函数中如何使用上一层函数中的局部变量?
在内函数中如果想使用外层函数的变量,那么需要使用 nonlocal 关键字 引用
可以引用上一层函数中定义的局部变量,但依然不能提升为全局变量
高阶函数
递归函数
递归函数就是定义了一个函数,然后在函数内,自己调用了自己这个函数
递归函数内必须要有结束,不然就会一只调用下去,直到调用的层数越来越多,栈溢出
递归函数是一层一层的进入,再一层一层的返回
回调函数
如果在一个函数中要求传递的参数是一个函数作为参数,并且在函数中使用了传递进来的函数,那么这个函数我们就可以称为是一个回调函数
。
匿名函数 lambda 表达式
匿名函数的意思就是说可以不使用def定义,并且这个函数也有没有名字
在python中可以使用lambda表达式来定义匿名函数。
注意:lambda表达式仅仅是一个表达式,不是一个代码块,所以lambda又称为一行代码的函数
lambda表达式也有行参,并且不能访问除了自己的行参之外的任何数据包括全局变量
**
迭代器
迭代器是python中最具特色的功能之一,是访问集合元素的一种方式
迭代器是一个可以记住访问遍历的位置的对象
从集合的第一个元素开始访问,直到集合中的所有元素被访问完毕
迭代器只能从前往后一个一个的便利,不能后退
能被next()函数调用,并不断返回下一个值的对象称为迭代器(Iterator 迭代器对象)
迭代器的取值方案
- next() 调用一次获取一次,直到数据被取完
- list() 使用list函数直接取出迭代器中的所有数据
- for 使用for循环遍历迭代器的数据