av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python防止棧溢出的實例講解

瀏覽:3日期:2022-06-19 13:11:09
1、說明

使用遞歸函數(shù)的優(yōu)點是邏輯簡單清晰,缺點是過深的調(diào)用會導(dǎo)致棧溢出。

解決遞歸調(diào)用棧溢出的方法是通過尾遞歸優(yōu)化,事實上尾遞歸和循環(huán)的效果是一樣的,所以,把循環(huán)看成是一種特殊的尾遞歸函數(shù)也是可以的。

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)的調(diào)用過程===> fact_iter(5, 1)===> fact_iter(4, 5)===> fact_iter(3, 20)===> fact_iter(2, 60)===> fact_iter(1, 120)===> 120

知識點擴展:

棧溢出

在計算機中,函數(shù)調(diào)用是通過棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的,每當進入一個函數(shù)調(diào)用,棧就會加一層棧幀,每當函數(shù)返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調(diào)用的次數(shù)過多,會導(dǎo)致棧溢出。可以試試fact(1000):

>>> fact(1000)Traceback (most recent call last): File '<stdin>', line 1, in <module> File '<stdin>', line 4, in fact ... File '<stdin>', line 4, in factRuntimeError: maximum recursion depth exceeded

到此這篇關(guān)于python防止棧溢出的實例講解的文章就介紹到這了,更多相關(guān)python如何防止棧溢出內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 97成人在线 | 午夜在线精品 | 涩涩视频在线播放 | 亚洲成人一区二区 | 久久久久久免费毛片精品 | 中文字幕伊人 | 久久精品免费观看 | 久久久久久国产 | 999久久久| 一级毛片视频在线观看 | 亚洲成人av一区二区 | 国产高清精品在线 | 亚洲成av人片在线观看无码 | 自拍偷拍亚洲欧美 | 午夜免费网站 | cao视频| 欧美一区二区三区小说 | 国产高清在线观看 | 在线成人av | 久久久人 | 亚洲午夜在线 | 黄色骚片 | 国产成人精品免费 | 精品久久一区 | 国产成人精品一区二区三区在线 | 国产午夜精品久久久 | 国产精品美女一区二区 | 不卡的av在线 | 欧美视频在线播放 | 日韩手机在线视频 | 日本精品一区二区三区在线观看视频 | 欧美日韩一区不卡 | 国产一区二区三区久久久久久久久 | 久久久av一区 | 国内av在线 | 亚洲高清视频在线观看 | 91黄在线观看 | 一区二区三区高清 | 午夜欧美| 日本人和亚洲人zjzjhd | 五月天天丁香婷婷在线中 |