python遞迴函式步驟 Python中的遞迴函式

2021-10-13 14:27:23 字數 1741 閱讀 1710

函式遞迴:函式的遞迴呼叫,即在函式呼叫的過程中,又直接或間接地呼叫了函式本身

# 直接呼叫

# def foo():

# print('from foo')

# foo()

# foo()

# 間接呼叫

# def bar():

# print('from bar')

# foo()

# def foo():

# print('from foo')

# bar()

# foo()

在使用遞迴時,需要注意以下幾點:

遞迴就是在過程或函式裡呼叫自身

必須有乙個明確的遞迴結束條件,稱為遞迴出口。

注意: 切勿忘記遞迴出口,避免函式無限呼叫。

遞迴的經典案例

>>> def factorial(n):

... if n == 1:

... return 1

... else:

... return n * factorial(n - 1)

>>> factorial(1)

>>> factorial(5)

>>> factorial(10)

當使用正整數呼叫 factorial() 時,會通過遞減數字來遞迴地呼叫自己。

為了明確遞迴步驟,對 5! 進行過程分解:

factorial(5) # 第 1 次呼叫使用 5

5 * factorial(4) # 第 2 次呼叫使用 4

5 * (4 * factorial(3)) # 第 3 次呼叫使用 3

5 * (4 * (3 * factorial(2))) # 第 4 次呼叫使用 2

5 * (4 * (3 * (2 * factorial(1)))) # 第 5 次呼叫使用 1

5 * (4 * (3 * (2 * 1))) # 從第 5 次呼叫返回

5 * (4 * (3 * 2)) # 從第 4 次呼叫返回

5 * (4 * 6) # 從第 3次呼叫返回

5 * 24 # 從第 2 次呼叫返回

120 # 從第 1 次呼叫返回

當數字減少到 1 時,遞迴結束。

二分法:

二分查詢

nums=[1,3,7,11,22,34,44,55,66,77,88,99,111,222,333,444]

# for item in nums:

# if item == 10:

# print('find it')

# break

# else:

# print('not exist') #這種占用大量記憶體,不推薦,效率低下

def search(search_num,nums):

print(nums)

if len(nums) == 0:

print('not exists')

return

mid_index=len(nums) // 2

if search_num> nums[mid_index]:

nums=nums[mid_index+1:]

search(search_num,nums)

elif search_num

nums=nums[:mid_index]

search(search_num,nums)

else:

print('find it')

search(31,nums) #二分法

python函式函式巢狀分析步驟與遞迴函式

1 函式巢狀分析步驟 1.name czd 2.def zhangwuji 3.1 name 張無忌 3.2 print name 3.3 def songqingshu 3.4.1 name 宋青書 3.4.2 print name 3.4.3 def zhaomin 3.4.5.1 name 趙...

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...