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

    python防止栈溢出的解决

    小妮浅浅小妮浅浅2021-08-26 09:20:41原创2779

    说明

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

    2、递归调用栈溢出的方法是栈溢出问题,实际上尾递归与循环效果相同。

    3、将循环视为一种特殊的尾递归函数也是可以的。

    实例

    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基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

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

    相关文章推荐

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

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网