递归函数:函数内部自己调用自己,必须有出口
匿名函数
lambda表达式:如果一个函数有一个返回值,并且只有一句代码,可以使用其简化
(简化代码量,节省内存)
语法:
lambda 参数列表 :表达式
注意:lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用
lambda表达式能接受任何数量的参数但只能返回一个表达式的值
def fn1():
return 100
result = fn1()
print(result)
fn2 = lambda:100
print(fn2)
print(fn2())
def add(a,b):
return a + b
result = add(1,2)
print(result)
fn1 = lambda a,b : a + b
print(fn1(1,2))
lambda的参数形式
无参数:
fn1 = lambda:100
print(fn1())
一个参数:
fn1 = lambda a : a
print(fn1('hello world'))
默认参数:
fn1 = lambda a,b,c = 100 : a+b+c
print(fn1(10,20))
可变参数:
(*args)返回的是元组
fn1 = lambda *args : args
print(fn1(10,20))
(**kwargs)返回的是字典
fn1 = lambda **kwargs : kwargs
print(fn1(name = 'tom',age = 20))
带判断的lambda
fn1 lambda a ,b :a if a>b else b
print(fn1(100,200))