Day10函数的应用

1.补充不定长参数(面试题)

补充:不定长参数(面试题)
一个‘’星号“”参数名:(一个是传位置参数)将位置参数作为元组的元素.参数就是一个元组
两个“星号”参数名:(两个
*是传关键字参数)将关键字参数,以参数名作为key, 实参作为值,
组合成键值对作为字典的元素

注意: 经常讲args,和kwargs组合在一起使用,但是的要放在的前面
说说
args 和
*kwargs的却别。

Day10函数的应用_第1张图片
不定长参数*args和**kwargs

2.匿名函数

1.普通函数:
def 函数名(参数列表):
函数体

2.匿名函数:
函数名 = lambda 参数列表:返回值

说明:
函数名 -> 变量名
lambda-> 关键字
参数列表 -> 参数名1,参数名2.....
返回值 -->相当于只有一个return语句的函数体
匿名函数的调用和普通函数一样:函数名(实参列表),也支持位置参数,关键字参数,参数设置默认值
不定长参数


Day10函数的应用_第2张图片
练习

Day10函数的应用_第3张图片
这个难!为什么item是4

3.变量的作用域

1.变量的作用域
变量的作用域指的是变量能够使用的范围

2.全局变量和局部变量
全局变量:声明在函数和类的外面的变量都是全局变量,作用域是从声明开始到整个py文件结束
(任何地方都可以使用)。只要不是在函数和类里面都是全局变量

3.局部变量
声明在函数和类中的变量都是局部变量。声明在函数中的局部变量作用域,从声明开始到函数结束


Day10函数的应用_第4张图片
局部变量

4.global关键字只能用在函数中
在函数中说明一个变量是全局变量


Day10函数的应用_第5张图片
global在函数中声明全局变量

5.nonlocal 关键字
在大局部的小局部中修改大局部变量的值
Day10函数的应用_第6张图片
nonlocal

4.函数作为变量

声明函数就是声明一个类型是function的变量,函数名实质就是变量名

1.变量可以给其他变量赋值


Day10函数的应用_第7张图片
给其他变量赋值

Day10函数的应用_第8张图片
赋了函数的变量也可以调用函数

2.函数作为列表的元素


Day10函数的应用_第9张图片
作为列表元素

3.将函数作为参数
应用:sort的使用
列表.sort(key=None,reverse=False)从小到大排序

使用sort的时候,可以通过给key赋一个函数变量,来规定列表中的元素按照什么标准来排序。
这儿的函数变量要求有一个参数和一个返回值。参数代表列表中的元素,返回值代表按照那个标准排序


Day10函数的应用_第10张图片
sort的用法

4.将函数作为返回值
Day10函数的应用_第11张图片
给+调用大函数返回add

5.函数的调用

1.python中函数可以有多个返回值


Day10函数的应用_第12张图片
多个返回值return后用逗号隔开

2 .函数的调用过程是一个压栈的过程
每次调用函数的时候,系统都会在内存中(栈,栈区间的内存是系统自动释放和删除)
开辟空间来存储函数执行过程中产生的数据(函数中声明的变量)
当函数调用完成后,这块内存会自动销毁。

6.递归函数(装逼用,了解)

1.什么是递归函数
递归函数: 函数中调用函数本身,这样的函数就是递归函数(自己调自己)

循环能做的事 递归都能做,但是实际上循环能解决的问题,绝对不选递归

2.怎么写递归函数
第一步:确定临界值(循环结束的条件),让函数结束
第二步:找关系,假设函数的功能已经实现,找f(n)和f(n-1)的关系
第三步:根据关系,用f(n-1)实现f(n)的功能


Day10函数的应用_第13张图片
递归函数

Day10函数的应用_第14张图片
练习

f(n)和f(n-1)的关系:
先打印n颗星
f(n-1)
先f(n-1)
在打印n颗星


Day10函数的应用_第15张图片
递归函数

你可能感兴趣的:(Day10函数的应用)