一、三元运算
格式:对象 = 值1 if 条件 else 值2 当条件成立将值1赋给对象,反之将值2赋给对象
>>> name = 1 if True else 2 >>> name 1 >>> name = 1 if False else 2 >>> name 2
通式:代码1 if 条件 else 代码2 当条件成立执行if前面的代码1,不成立则执行代码2
二、lambda表达式
格式:函数名 = lambda 形参:功能代码
无参数 f2 = lambda : 123 print(f2()) 结果:123 #有参数 f2 = lambda a1,a2 : a1+a2 print(f2(1,2)) 结果:3 #偶数加100,其它返回原值(混合三元运算) f2 = lambda x: x + 100 if x % 2 == 0 else x for x in range(5): ret = f2(x) print(ret) 结果: 100 1 102 3 104
注:不能有赋值(assignment 赋值)符号在lambda里面
f2 = lambda x: x = x + 100 if x % 2 == 0 else x 报错:SyntaxError: can't assign to lambda #语法错误:不能赋值给lambda