遞迴的定義——在乙個函式裡再呼叫這個函式本身
現在我們已經大概知道剛剛講的story函式做了什麼,就是在乙個函式裡再呼叫這個函式本身,這種魔性的使用函式的方式就叫做遞迴。
正如你們剛剛看到的,遞迴函式如果不受到外力的阻止會一直執行下去。但是我們之前已經說過關於函式呼叫的問題,每一次函式呼叫都會產生乙個屬於它自己的命名空間,如果一直呼叫下去,就會造成命名空間占用太多記憶體的問題,於是python為了杜絕此類現象,強制的將遞迴層數控制在了1000
def recursion_deep(n=1):
print(n)
n += 1
recursion_deep(n)
if __name__ == '__main__':
recursion_deep()
設定預設遞迴層數:
import sys
sys.setrecursionlimit(2000)
def recursion_deep(n=1):
print(n)
n += 1
recursion_deep(n)
recursion_deep()
menu = ,
'網易': {},
'google': {}
},'中關村': ,
'汽車之家': {},
'youku': {},
},'上地': ,
},'昌平': ,
'北航': {},
},'天通苑': {},
'回龍觀': {},
},'朝陽': {},
'東城': {},
},'上海': }},
'閘北': }},
'浦東': {},
},'山東': {},
}
def three_menu(dic):
while true:
for k in dic:
print(k)
key = input("input>>>").strip()
if key == 'q' or key == 'b':
return 'q'
elif key in dic.keys() and dic[key]:
ret = three_menu(dic[key])
if ret == 'q':
return 'q'
three_menu(menu)
def search(num, lst, start=none, end=none):
start = 0 if start is none else start
end = len(lst) - 1 if end is none else end
mid = (end - start) // 2 + start
if start >= end:
return none
elif lst[mid] > num:
return search(num, lst, start, mid - 1)
elif lst[mid] < num:
return search(num, lst, mid + 1, end)
elif lst[mid] == num:
return mid
lst = [1, 2, 5, 8, 13, 23, 26, 33, 35, 40]
print(search(22, lst)) # none
print(search(23, lst)) # 5
python遞迴函式例項 python遞迴函式
python遞迴函式 什麼是遞迴?遞迴,就是在函式執行中自己呼叫自己 示例 def recursion n 定義遞迴函式 print n 列印n recursion n 1 在函式的執行種呼叫遞迴 recursion 1 呼叫函式 這個函式在不斷的自己呼叫自己,每次呼叫n 1,看下執行結果 998t...
python靜態遞迴函式 python遞迴函式
一 遞迴的定義 1.什麼是遞迴 在乙個函式裡在呼叫這個函式本身 2.最大遞迴層數做了乙個限制 997,但是也可以自己限制 1 deffoo 2 print n 3 n 1 4 foo n 5 foo 1 驗證997 3.最大層數限制是python預設的,可以做修改,但是不建議你修改。因為如果用997...
python靜態遞迴函式 python 遞迴函式
前言 本篇關於遞迴基本借鑑下面部落格講解加入自己理解。1.遞迴函式定義 如果乙個函式在函式內部呼叫自己,那這個函式就是遞迴函式。如 defsum arg,stop print arg if arg arg arg sum arg,stop sum 1,20 2.遞迴的特性 1 必須有乙個明確的結束條...