python遞迴函式

2022-07-31 18:42:15 字數 1915 閱讀 9322

遞迴的定義——在乙個函式裡再呼叫這個函式本身

現在我們已經大概知道剛剛講的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 必須有乙個明確的結束條...