python函数 - 17 递归函数

本文介绍了Python中递归函数的概念,强调了其在解决重复操作问题中的应用。通过详细讲解递归函数的定义,指出确定临界值和理解f(n)与f(n-1)关系的重要性。同时,提供了三个递归函数的实战练习,包括计算阶乘、斐波拉契数列的和以及打印阶梯形状。

递归函数

1.定义

递归函数: 就是在函数里面调用函数本身(函数自己调用自己)

作用: 解决需要重复做的操作(循环可以做到的,递归一般都可以实现)

2.写一个递归函数的步骤:

(1).确定临界值(跳出循环)

(2).假设函数功能已经实现,找出f(n)与f(n-1)的关系.

# 这就是一个递归函数
def foo():
    print('aaa')
    foo()
# foo()    #会造成死循环

# 例如:计算1+2+3+...n的和(用递归函数)
def sum(n):
    if n == 1:   #1.找临界值
        return 1
    return sum(n-1)+n  # 2.找出sum(n)与sum(n-1)的关系
print(sum(100))
练习1:求n的阶乘(用递归函数)
def factorial(x):
    if x == 1:
        return 1
    return factorial(x - 1) * x
print(factorial(5))
练习2:计算斐波拉契数列的和(用递归函数)
def fibo_num(a):
    if a == 1 or a == 2:    #临界值就是找出直接可以确定的结果
        return 1
    return fibo_num(a-1) + fibo_num(a-2)   #找关系f(n) = f(n-1)+f(n-2)
print(fibo_num(6))  #>>>8
练习3:打印:如果阶梯* 假如:n=4
#打印形状 
****
***
**
*

def nums(n):
    if n == 1:
        print('*')
        return 0  #找临界值(要让函数结束)
    for _ in range(n):
        print('*',end='')
    print()
    nums(n-1)
print(nums(4))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值