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

    python如何防止栈溢出

    小妮浅浅小妮浅浅2021-08-16 09:58:56原创2712

    说明

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

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

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

    专题推荐:python栈溢出
    上一篇:python命名关键字参数的使用注意 下一篇:python输入身高体重算BMI

    相关文章推荐

    • python读取txt文件• python中mock的断言使用• python中mock有哪些统计的方法• python异常是什么?如何解决?• python归并排序的基本思路• python快速排序的运作过程• python归并排序和快速排序比较• python Tkinter模块是什么• python美元转换成人民币转换代码• python命名关键字参数的使用注意

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网