函數(shù)的遞歸調(diào)用:是函數(shù)嵌套調(diào)用的一種特殊形式
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的綠園網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
具體是指:在調(diào)用一個函數(shù)的過程中又直接或者間接的調(diào)用到本身,是一個死循環(huán),最大遞歸是1000次,超出之后報錯。
# 直接調(diào)本身
def f1():
print('是我還是我')
f1()
f1()
# 間接調(diào)用
def f1():
print('f1')
f2()
def f2():
print('f2')
f1()
作用:一段代碼的循環(huán)運行方式的方案有兩種
1.是while true循環(huán)
2.函數(shù)的遞歸--return結(jié)束函數(shù)的調(diào)用
回溯:一層一層調(diào)用下去
遞推:滿足某種結(jié)束條件,結(jié)束遞歸調(diào)用,然后一層一層返回
l=[1,[1,2],[1,[1,2],[1,2,3]]]
# 需求把l里面的數(shù)據(jù)打散取出來
def f1(l):
for x in l:
if type(x) is list: #如果循環(huán)出來的是列表則繼續(xù)循環(huán)判斷
f1(x)
else:
print(x)