Python之函数进阶
本节内容 上一篇中介绍了Python中函数的定义、函数的调用、函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一、递归函数 函数是可以被调用的,且一个函数内部可以调用其他函数。如果一个函数在内部调用本身,这个函数就是一个递归函数。函数递归调用的过程与循环相似,而且理论上,所有的递归函数都可以写成循环的方式,但是递归函数的优点是定义简单,逻辑清晰。递归和循环都是一个重复的操作过程,这些重复性的操作必然是需要有一定的规律性的。另外,很明显递归函数也需要一个结束条件,否则就会像死循环一样递归下去,直到由于栈溢出而被终止(这个下面介绍)。 可见,要实现一个递归函数需要确定两个要素: 递归规律 结束条件 1. 实例:计算正整数n的阶乘 n! = 1 * 2 * 3 * ... * n 循环实现 思路有两个: 从1乘到n,需要额外定义一个计数器存放n当前的值 从n乘到1,无需额外定义计数器,直接对n进行减1操作,直到n=0返回1结束 def fact(n): if n == 0: return 1 result = 1 while n >= 1: result *= n n -= 1 return result 递归实现 先来确定递归函数的两个要素: 递归规律:n!=1 * 2 * 3 * ... * n = (n