• 技术文章 >Python技术 >Python基础教程

    python防止栈溢出的解决

    小妮浅浅小妮浅浅2021-05-21 16:06:46原创166

    1、说明

    使用递归函数的优点是逻辑简单明了,缺点是调用过深会导致栈溢出。

    解决递归调用栈溢出的方法是栈溢出问题,实际上尾递归与循环效果相同,因此,将循环视为一种特殊的尾递归函数也是可以的。

    2、实例

    def fact(n):
        return fact_iter(n, 1)
     
    def fact_iter(num, product):
        if num == 1:
            return product
        return fact_iter(num - 1, num * product)
        
    # fact(5)的调用过程
    ===> fact_iter(5, 1)
    ===> fact_iter(4, 5)
    ===> fact_iter(3, 20)
    ===> fact_iter(2, 60)
    ===> fact_iter(1, 120)
    ===> 120

    以上就是python防止栈溢出的方法,希望对大家有所帮助。更多Python学习指路:python基础教程

    专题推荐:python栈溢出
    上一篇:python如何判断集合的超集 下一篇:python有哪些切片类型

    相关文章推荐

    • python集合魔法函数有哪些• python实例创建销毁的函数整理• python三种属性管理魔法函数• python中高斯模糊是什么• python如何在二维图像上进行卷积• python读取txt文件• python如何另起一行输入代码• python中mock的断言使用• python归并排序的基本思路• python快速排序的运作过程• python归并排序和快速排序比较• python user-agent如何反爬虫• python使用time.sleep设置时间间隔• python Tkinter模块是什么• python爬虫ip池如何实现• python美元转换成人民币转换代码• python中dict避免key不存在的错误• python命名关键字参数的使用注意• python如何防止栈溢出• python输入身高体重算BMI• python中isprintable判断字符的使用• python中有哪些大小写转换方法• python中lstrip()截掉字符• python partition如何分割字符串• splitlines在python中返回列表• python copy()和直接赋值的区别• python get获取指定键值• python in操作符是什么• python中popitem如何使用• python中update更新字典的方法
    品易云

    全部评论我要评论

  • 取消发布评论发送
  • 

    Python学习网