1.补充不定长参数(面试题)
补充:不定长参数(面试题)
一个‘’星号“”参数名:(一个是传位置参数)将位置参数作为元组的元素.参数就是一个元组
两个“星号”参数名:(两个*是传关键字参数)将关键字参数,以参数名作为key, 实参作为值,
组合成键值对作为字典的元素
注意: 经常讲args,和kwargs组合在一起使用,但是的要放在的前面
说说args 和*kwargs的却别。
2.匿名函数
1.普通函数:
def 函数名(参数列表):
函数体
2.匿名函数:
函数名 = lambda 参数列表:返回值
说明:
函数名 -> 变量名
lambda-> 关键字
参数列表 -> 参数名1,参数名2.....
返回值 -->相当于只有一个return语句的函数体
匿名函数的调用和普通函数一样:函数名(实参列表),也支持位置参数,关键字参数,参数设置默认值
不定长参数
练习
这个难!为什么item是4
3.变量的作用域
1.变量的作用域
变量的作用域指的是变量能够使用的范围
2.全局变量和局部变量
全局变量:声明在函数和类的外面的变量都是全局变量,作用域是从声明开始到整个py文件结束
(任何地方都可以使用)。只要不是在函数和类里面都是全局变量
3.局部变量
声明在函数和类中的变量都是局部变量。声明在函数中的局部变量作用域,从声明开始到函数结束
局部变量
4.global关键字只能用在函数中
在函数中说明一个变量是全局变量
global在函数中声明全局变量
5.nonlocal 关键字
在大局部的小局部中修改大局部变量的值
nonlocal
4.函数作为变量
声明函数就是声明一个类型是function的变量,函数名实质就是变量名
1.变量可以给其他变量赋值
给其他变量赋值
赋了函数的变量也可以调用函数
2.函数作为列表的元素
作为列表元素
3.将函数作为参数
应用:sort的使用
列表.sort(key=None,reverse=False)从小到大排序
使用sort的时候,可以通过给key赋一个函数变量,来规定列表中的元素按照什么标准来排序。
这儿的函数变量要求有一个参数和一个返回值。参数代表列表中的元素,返回值代表按照那个标准排序
sort的用法
4.将函数作为返回值
给+调用大函数返回add
5.函数的调用
1.python中函数可以有多个返回值
多个返回值return后用逗号隔开
2 .函数的调用过程是一个压栈的过程
每次调用函数的时候,系统都会在内存中(栈,栈区间的内存是系统自动释放和删除)
开辟空间来存储函数执行过程中产生的数据(函数中声明的变量)
当函数调用完成后,这块内存会自动销毁。
6.递归函数(装逼用,了解)
1.什么是递归函数
递归函数: 函数中调用函数本身,这样的函数就是递归函数(自己调自己)
循环能做的事 递归都能做,但是实际上循环能解决的问题,绝对不选递归
2.怎么写递归函数
第一步:确定临界值(循环结束的条件),让函数结束
第二步:找关系,假设函数的功能已经实现,找f(n)和f(n-1)的关系
第三步:根据关系,用f(n-1)实现f(n)的功能
递归函数
练习
f(n)和f(n-1)的关系:
先打印n颗星
f(n-1)
先f(n-1)
在打印n颗星
递归函数
网友评论