lambda也是python支持的一种定义函数的方法_Python-Lambda表达式、匿名函数、递归函数...

Lambda表达式和匿名函数

Lambda表达式可以用来声明匿名函数。Lambda函数是一种简单的、在同一行中定义函数的方法。Lamda函数实际生成了一个函数对象

Lambda表达式只运行包含一个表达式。不包含复杂语句,该表达式的计算结果就是函数的返回值

语句:lambda arg1,a,rg2,arg3…:

Arg1/arg2/arg3为函数的参数。相当于函数体。运算结果是:表达式的运算结果

#测试lambda函数

f=lambdaa,b,c:a+b+c #匿名函数,默认return返回

print(f)

print(f(1,2,3))

deftest01(a,b,c):

print("*"*3)

returna+b+c

print((test01(2,3,4)))

g = [lambdaa:a*2,lambdab:b*3]

print(g[0](6))

h = [test01,test01,test01] #函数也是对象

print(h[0](5,6,7))

Eval函数

功能:将字符串str当成有效的表达式来求值并返回计算结果

语法:eval(source[,globals[,locals]])->value

参数:source:一个Python表达式或函数compile()返回的代码对象

Global:可选。必须是dictionary

Local:可选。任意映射对象

#测试eval函数

s = "print('abcd')"

eval(s) #用于打印字符串

a=10

b=20

c=eval("a+b") #用于计算数值

print(c)

dict1 = dict(a=100,b=200)

d=eval("a+b",dict1)  #取字典对象中的a,b

递归函数

自己调用自己的函数,在函数体内直接或间接的自己调用自己

每个递归函数必须包含两个条件:

终止条件:表示什么时候结束。一般用于返回值,不再调用自己

递归步骤:把第n步的值和第n-1步相关联

#测试递归函数的基本原理

deftest01():

print("test01")

test02()

deftest02():

print("test02")

test01()

deftest03():

print("test03")#该方法无限制的开启栈帧stack frame,直到栈空间满了,程序崩溃;后进先出test03()

print("###")  #信息不打印,上一步方法未执行完

test03()  #执行报错,Process finished with exit code 1,退出码1,无限制的调用,正常情况是0

结束条件

#测试递归函数的基本原理

deftest01(n):

print("test01",n)

ifn==0:

print("over")

else:

test01(n-1)

print("test01***",n)

deftest02():

print("test02")

test01(4)

使用递归计算阶乘

标签:函数,lambda,递归函数,Python,def,print,test01,表达式,Lambda

来源: https://blog.csdn.net/songpeiying/article/details/96033303

你可能感兴趣的:(lambda也是python支持的一种定义函数的方法_Python-Lambda表达式、匿名函数、递归函数...)