python防止棧溢出的解決
說(shuō)明
1、使用遞歸函數(shù)的優(yōu)點(diǎn)是邏輯簡(jiǎn)單明了,缺點(diǎn)是調(diào)用過(guò)深會(huì)導(dǎo)致棧溢出。
2、遞歸調(diào)用棧溢出的方法是棧溢出問(wèn)題,實(shí)際上尾遞歸與循環(huán)效果相同。
3、將循環(huán)視為一種特殊的尾遞歸函數(shù)也是可以的。
實(shí)例
deffact(n):
returnfact_iter(n,1)
deffact_iter(num,product):
ifnum==1:
returnproduct
returnfact_iter(num-1,num*product)
#fact(5)的調(diào)用過(guò)程
===>fact_iter(5,1)
===>fact_iter(4,5)
===>fact_iter(3,20)
===>fact_iter(2,60)
===>fact_iter(1,120)
===>120
以上就是python防止棧溢出的方法,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。