zl程序教程

您现在的位置是:首页 >  后端

当前栏目

学习Python的第七节课(函数调用、列表解析、嵌套和递归等等)

Python列表学习递归 解析 嵌套 函数调用 等等
2023-09-11 14:16:46 时间

学习Python的第七节课(函数调用、列表解析、嵌套和递归等等)

一、函数调用

函数的本质就是一段有特定功能、可以重复使用的代码。

一个函数可以调用另一个函数。当被调用的函数结束时(即return语句之后
或者被调用函数的最后一个语句执行完毕之后),控制流程返回到调用函
数之后的位置。

函数调用案例集锦,比如:从键盘上任意输入整数,求阶乘,并输出结
果。

在这里插入图片描述

调用函数例子总结

(1)一个函数被调用的前提是其已存在,或是库模块中函数。或是用户已定
义好的函数。对于模块中函数,在运用之前调用import语句导入模块即可.
(2)函数有两种情况:一种是有返回值的函数,一种是只完成一定的操作,不
返回值。
对于有返回值,函数的调用形式是:
变量=函数名([实参列表])   //val=factorial(m)
对于没有返回值,函数的调用形式是:
函数名([实参列表])     //start( ) , end( )
(3)调用函数时,函数的形参与实参要求个数相等。并且对应的形参和空参
的类型相同。若被调函数是无参函数,则实参表列为空。
(4)数据传递是通过形参接收实参的数值完成的。函数的实参和形参之间的
数据传递是单方向的值传递方式,即只能把实参的值传递给形参。而形参
值的任何变化都不会影响实参。
(5)调用函数时,当实参个数多于一个时,用逗号让各参数彼此分隔开。

二、可变长参数

 在Python中,还可以定义可变参数。可变参数也称为不定长参数,即传入
 函数中的实际参数可以是0个、一个、两个到任意个。

定义可变参数时,主要有两种形式:一种是*parameter,另一种是
**parameter。

在这里插入图片描述

*parameter
在这里插入图片描述
**parameter
在这里插入图片描述

三、函数参数传递

四、多返回值函数与列表解析

1、多返回值函数

①函数可以返回任何类型的对象,不仅仅只有数字、字符(串)或布尔值,还
可以返回列表等;函数也可以没有任何返回。
②函数返回多个值的案例:定义函数,一次性返回和、平均值、最大值、
最小值等。

在这里插入图片描述
有返回值
在这里插入图片描述
无返回值
在这里插入图片描述

2、列表解析

①列表解析式是将一个列表转换成另一个列表的工具。在转换过程中,可
以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素
都可以按需要进行转换。
②每个列表解析式都可以重写为for循环,但不是每个for循环都能重写为列
表解析式。
③list2=[f(x) for x in list1]

基于内建函数和自定义函数进行列表解析

除了列表外,列表解析也可以应用在其他对象上,比如字符串、元祖、由range函数产生的算术表达式等。
在这里插入图片描述
在这里插入图片描述

五、函数的嵌套与递归

1、函数嵌套

Python语言允许在一个函数的定义中出现对另一个函数的调用,这就是函数的嵌套调用,即在被调用函数中又调用其他函数。

使用函数嵌套调用。编写代码求下列函数之和

在这里插入图片描述

在这里插入图片描述

2、函数递归

一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函
数,python允许函数的递归调用。在递归调用中,主调函数又是被调函
数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。 

使用函数递归求n!
思路:把n阶问题转化为n-1的问题,即factorial(k)=k*factorial(k-1)。
在这里插入图片描述

函数的递归总结

每—次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及
临时变量。当最后一次函数调用运行结束时,每返回一层,就释放本次调
用所分配的存储空间,并弹出上一层分配空间中保存的参数、返回地址以及
临时变量等。

六、作业

在这里插入图片描述
在这里插入图片描述