- 一、函数嵌套
- 函数的嵌套调用
- 函数的嵌套定义
- 二、函数递归
- 递推
- 回溯
- 三、匿名函数
- 四、内置函数
函数的嵌套分为两种情况:
函数的嵌套调用:即在一个函数中调用其它函数的情况
函数的嵌套定义:即在函数中进行另外一个函数的定义,也称为嵌套函数
例如:
def max(x,y): return x if x > y else y; def maxs(a,b,c,d): res1 = max(a,b); res2 = max(res1,c); res3 = max(res2,d); return res3; print(maxs(5,2,420,299));函数的嵌套定义
例如:
def f1(): def f2(): def f3(): pass print("---->f1") f2() f2() #会报错 嵌套函数在外部不能使用二、函数递归
上一个知识点中,我们讲解了函数的嵌套,在函数嵌套调用其它函数时,有一种特殊情况,就是直接或间接地调用了函数本身,这样的一种情况称为函数的递归调用
例1:
def func(): #直接调用自己 print(‘newdream') func() func()
例2:
def foo(): #间接调用自己 print('from foo') bar() def bar(): print('from bar') foo() foo()
Python在递归中没有像别的语言对递归进行优化,所以他的每一次调用都会基于上一次的调用进行,并且它设置了最大的递归数量防止递归外溢
递推如例3,递归每一次都是基于上一次进行下一次的执行,这叫递推
回溯是在遇到终止条件,从最后往回返一级一级的把值返回来,这叫回溯
例3:
def num(n): if n == 1: return 1 return num (n-1)+2 print(num(7))三、匿名函数
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用 def 声明函数的标准步骤
Lambda函数能接收任何数量的参数但只能返回一个表达式的值,同时不能包含命令或多个表达式
匿名函数不能直接调用print,因为lambda需要一个表达式
lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率
lambda函数的语法只包含一个语句
例如:
lambda [arg1 [,arg2,…argn]]:expression
举例:
sum = lambda arg1, arg2: arg1 + arg2; print ( "Value: ", sum( 5, 8 ) )四、内置函数
Python内置函数就是python标准库里(语言自身携带的)函数(公共函数),一般各种编程语言中都会预先定义常用的内置函数。因为内置函数使用频率比较频繁,所以通过内置函数的形式提供出来
Python中内置函数大致包含如下类型:
数学运算、类型转换、序列 *** 作、对象 *** 作、反射 *** 作、变量 *** 作、交互 *** 作、文件 *** 作、编译执行、装饰器
例如:
类型转换: int() float() str()
序列 *** 作: sorted() reversed() next()
交互 *** 作:print() input()
等等…
感谢每一个认真阅读我文章的人!!! 如果下面这些资料用得到的话可以直接拿走:
1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接点击此链接进群询问,群里也会有大神帮忙解答,也可以手动添加群号 743262921 备注222
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)