Python 遞歸


一、解釋

遞歸:在調用一個函數的過程中,直接或間接地調用了函數本身這個就叫遞歸

:Python在遞歸中沒有像別的語言對遞歸進行優化,所以他的每一次調用都會基於上一次的調用進行,並且他設置了最大的遞歸數量防止遞歸外溢

二、實例

#直接調用自己:
def func():
    print('from func')
    func()

func()
#間接調用自己
def foo():
    print('from foo')
    bar()

def bar():
    print('from bar')
    foo()

foo()
#遞歸的實現:
def age(n):
    if n == 1:
        return 18
    return age(n-1)+2

print(age(5))

# age(5)=age(4)+2 第一次進入
# age(4)=age(3)+2 第二次進入
# age(3)=age(2)+2 第三次進入
# age(2)=age(1)+2 第四次進入
# age(1)=18 第五次進入,最后判斷終止條件

# age(n)=age(n-1)+2 #n>1  遞歸終止條件
# age(1)=18 #n=1          等於終止條件

三、遞歸的回溯與遞推

遞推:像上邊遞歸實現所拆解,遞歸每一次都是基於上一次進行下一次的執行,這叫遞推

回溯:則是在遇到終止條件,則從最后往回返一級一級的把值返回來,這叫回溯

# 實例
l =[1, 2, [3, [4, 5, 6, [7, 8, [9, 10, [11, 12, 13, [14, 15,[16,[17,]],19]]]]]]]

def search(l):
    for item in l:
        if type(item) is list:
            search(item)
        else:
            print(item)

search(l)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM