第一章 Python基础入门之递归和高阶函数

系列文章目录

第一章 Python基础入门之Hello World
第一章 Python基础入门之变量与数据类型
第一章 Python基础入门之ASCII(字符编码和二进制)
第一章 Python基础入门之单多行的注释和输出
第一章 Python基础入门之INPUT用户输入
第一章 Python基础入门之IF ELSE条件判断
第一章 Python基础入门之While循环与For循环
第一章 Python基础入门之什么是模块(库)
第一章 Python基础入门之什么是.pyc
第一章 Python基础入门之数据类型
第一章 Python基础入门之Python3数据类型中的bytes和str的区别
第一章 Python基础入门之文件读与写详解
第一章 Python基础入门之文件修改详解
第一章 Python基础入门之文件的with语句
第一章 Python基础入门之函数与函数式编程
第一章 Python基础入门之函数式编程参数详解
第一章 Python基础入门之局部变量与全局变量作用域



前言

Python系列学习


一、相关内容

什么是递归?

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
递归的特性:

  • 必须有一个明确的结束条件
  • 每次进入更深一层的递归时,问题规模相比上次递归都应有所减少。
  • 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。)
# 递归案例1:不断的除以2。定义一个函数,调用时调用回自身。
def calc(n):
    print(n)
    return calc(n/2)
calc(10)
# 最后会报一个错误:RecursionError: maximum recursion depth exceeded while calling a Python object
# 这个错误说明递归的最大次数已达到。

# 递归案例2:查看递归允许的最大次数
def calc(n):
    print(n)
    return calc(n+1)
calc(0)
# 故,递归最大的次数是999

# 递归案例3:
def calc(n):
    print(n)
    if int(n/2) > 0:
        return calc(int(n/2))
calc(10)

高阶函数

高阶函数简单的可以理解成函数里面再嵌套函数。

def add(a,b,c):
    return c(a)+c(b)
res = add(3,-6,abs)
print(res)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值