Python——递归函数

38 阅读1分钟

递归函数

递归函数在定义时需满足的两个基本条件:

1、有递归公式

2、有边界条件

递归函数的执行:

1、递推(递归调用):递归的执行基于上一次的运算结果,将问题规模逐渐缩小,通过不断调用自身来求解子问题

2、回溯:当递归达到边界条件时,递归开始,逐级返回函数调用过程中得到的结果,将得到的部分结果组合成最终的解

# 功能:n!
# 边界条件:n = 1,结果为1
# 公式:n x (n-1)!

def func(num):
    """n!"""
    # 边界条件
    if num==1 :
        return 1
    # 公式
    else:
        return num * func(num-1)

num =int(input("输入整数:"))
result = func(num)
print(f"{num}= %d" % result)

# 斐波那契数列
# 边界条件:fib(0) = 0, fib(1) = 1
# 公式:fib(n) = fib(n-1) + fib(n-2)

def fib(n):
    if n==0 :
        return 0
    elif n==1:
        return 1
    else:
        return fib(n-1)+fib(n-2)

n =int(input("输入整数:"))
result = fib(n)
print(f"fib({n})= %d" % result)

匿名函数

匿名函数:是一类不需要命名的函数,它与普通函数一样可以在程序的任何位置使用。

执行 操作:

1、普通函数在定义时有函数名,而匿名函数没有函数名。

2、普通函数的函数体中包含多条语句,而匿名函数的函数体只能是一个表达式。

3、普通函数可以实现比较复杂的功能,而匿名函数可实现的功能比较简单。

# 实现简单功能,   lambda <形式参数列表>:<表达式>
temp = lambda x : pow(x,2)      #定义
print(temp(10))