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