Python 递归函数是一种函数,它在其函数体内调用自身来解决问题。递归函数通常用于解决可以分解为较小问题的复杂问题。例如,计算一个数的阶乘可以使用递归函数来实现:
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1)
该函数检查 n 是否为零,如果是,则返回 1,否则返回 n 乘以 factorial(n - 1) 的结果。这样,当 n 为正整数时,递归调用将继续,直到 n 为零。
另外,Python 也支持匿名函数,也称为 lambda 函数。lambda 函数是一种不需要使用 def 关键字定义的小型函数。它的语法如下:
lambda arguments: expression
其中,arguments 是一个逗号分隔的参数列表,expression 是一个计算表达式,它将作为函数的返回值。例如,以下是一个将列表中的元素加倍的 lambda 函数:
double = lambda x: x * 2
这个 lambda 函数有一个参数 x,它返回 x 的两倍。这个函数可以像普通函数一样调用:
>>> double(5)
10
lambda 函数通常用于编写简单的函数,例如将一个列表排序,或筛选满足条件的元素。例如,以下是一个使用 lambda 函数来筛选列表中偶数的例子:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # [2, 4, 6, 8, 10]
在这个例子中,lambda 函数使用 filter() 函数筛选出列表中的偶数。由于 lambda 函数只需要简单地计算每个元素是否是偶数,因此它可以作为 filter() 函数的参数。