ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python-Lambda表达式、匿名函数、递归函数

2019-07-16 09:37:54  阅读:81  来源: 互联网

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



Lambda表达式和匿名函数

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

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

       语句:lambda arg1,a,rg2,arg3…:<表达式>

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

#测试lambda函数

f=lambda a,b,c:a+b+c #匿名函数,默认return返回
print(f)
print(f(1,2,3))

def test01(a,b,c):
    print("*"*3)
    return a+b+c

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

g = [lambda a:a*2,lambda b: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步相关联

 

 

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

def test01():
    print("test01")
    test02()

def test02():
    print("test02")

test01()

def test03():
    print("test03")#该方法无限制的开启栈帧stack frame,直到栈空间满了,程序崩溃;后进先出
   
test03()
    print("###"#信息不打印,上一步方法未执行完
test03()  #执行报错,Process finished with exit code 1,退出码1,无限制的调用,正常情况是0

 

结束条件

 

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

def test01(n):
    print("test01",n)
    if  n==0:
        print("over")
    else:
        test01(n-1)
    print("test01***",n)

def test02():
    print("test02")

test01(4)

 

使用递归计算阶乘



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

专注分享技术,共同学习,共同进步。

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有