匿名函数
1 ''' 2 概念:不使用def这个关键字定义函数,用lambda关键字来创建匿名函数。 3 特点: 4 1、lambda 只是一个表达式,函数体比def简单的多 5 2、lambda本质是表达式,而不是代码块,仅仅只能封装最简单的逻辑 6 3、lambda函数有自己的命名空间,并且不能修改除自己的参数列表以外的 7 参数或全局命名空间的参数 8 9 格式:lambda [参数1[,参数2…参数n ]]: 表达式 10 注意:表达式:只是一条简单的语句,不能包含循环,也不能有return, 11 也不能有yield,但允许有简单的if语句。如果表达式为元组, 12 用小括号括起来。 13 ''' 14 # 定义一个函数,返回传入的实参的和 (形参有两个) 15 def func1(num1, num2): 16 return num1+num2 17 print(func1(1,2)) 18 19 # 匿名函数 20 a = lambda num1,num2 : num2+num1 21 print(a(2,3)) 22 23 # lambda中使用if语句 if-else 24 # 语法格式: 25 # lambda [参数1[,参数2…参数n ]]: 结论1 if 表达式 else 结论2 26 # 当表达式为真时,取结论1;当表达式为假时,取结论2 27 ''' 28 # 结论1 if 表达式 else 结论2 29 a = 20 30 if True: 31 a = 30 # 结论1 32 else: 33 a = 40 # 结论2 34 ''' 35 36 # num num<0 num = 1 num>=0 num 37 def re(num): 38 if num < 0: 39 num = 1 40 return num 41 print(re(-2)) 42 print(re(100)) 43 44 b = lambda num : 1 if num<0 else num 45 print(b(200)) 46 print(b(-100)) 47 48 49 # 一般匿名函数只执行一次,用完就结束 50 print((lambda num : 1 if num<0 else num)(111)) 51 print((lambda num : 1 if num<0 else num)(-111))