python 复习之递归函数

什么是递归:

    函数直接或间接调用自身。

例:

def f():
    print('f()被调用')
    f() # 执行函数自身
    print('f()调用结束')

f()
print('程序结束') # 此语句永远不会被打印

RecursionError: maximum recursion depth exceeded while calling a Python object
# 报错超过了递归的最大深度

# 打印1-100之间的数
#循环实现
def number(begin, end):
    for x in range(begin, end+1):
        print(x, end=' ')

number(1, 100)
# 递归实现
def number(begin, end):
    print(begin, end=' ')
    if begin == end:
        return None
    number(begin + 1, end)

number(1, 100)


# 递归实现 打印100-1之间的数
def number(stop):
    if stop < 1:
        return None
    print(stop, end=' ')
    number(stop-1)

number(100)


# 递归实现1~n相加
def mysum(n):
    if n == 1:
        return 1
    return n + mysum(n-1)

print(mysum(100))

# 递归阶乘
def myfac(n):
    if n == 1:
        return 1
    return n * myfac(n -1)

myfac(6)

递归实现方法:

    先假设函数已经实现

递归优缺点:

    优点:

        递归可以把问题简单化,让思路更为清晰,代码更简洁。

    缺点:

        递归因系统环境影响大,当递归深度太大时,可能会得到不可预知结果。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值