python函数补充
递归函数 递归特性 1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出) 代码演练 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def send(student): if len(student) == 0: return 'All student revice messges' one = student.pop() if one == 'luenci': print('luenci get') send(student) elif one == 'jack': print('jack get') send(student) else: print('xiaoming get') send(student) if __name__ == "__main__": student_list = ['luenci', 'jack', 'xiaoming'] send(student_list) 函数作用域 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 def foo(): name = 'luenci' def bar(): name = 'xiaoming' def tt(): print(name) return tt return bar print(foo) print(foo()) print(foo()()) # bar=foo() # tt=bar() # print(tt) # tt() foo()()() out>> <function foo at 0x0000020655A92E18> <function foo.<locals>.bar at 0x00000206577809D8> <function foo.<locals>.bar.<locals>.tt at 0x0000020657780A60> xiaoming 函数式编程 匿名函数 函数声明:lambda 参数:表达式返回值 1 2 3 4 5 6 7 8 9 10 11 def test(x): return x+1 print(test(10)) fun = lambda x:x+1 print(fun(10)) out: 11 11 ...