Python函式遞迴

2021-10-14 07:33:47 字數 1897 閱讀 9997

1.概念

遞迴函式:乙個會呼叫自身的函式【在乙個函式的內部,自己呼叫自己】

遞迴呼叫

遞迴中包含了一種隱式的迴圈,他會重複指定某段**【函式體】,但這種迴圈不需要條件控制

使用遞迴解決問題思路:

​ a.找到乙個臨界條件【臨界值】

​ b.找到相鄰兩次迴圈之間的關係

​ c.一般情況下,會找到乙個規律【公式】

2.使用
**演示:

#案例一

""" 1 2 3 4 5 6 7 8 9 10 11.。。。

斐波那契數列:1,1,2,3,5,8,13,21,34,55,89.....

解決問題:報乙個數,輸出數列中對應的數

規律:a.第乙個位置和第二個位置上數是固定的,都是1

b.第n個位置上的數:第 n - 1 的數 + 第 n - 2 的數

r1 = func1(1) ------>1

r2 = func1(2) ------>1

r3 = fun1(3) ------>func1(1) + func1(2)----->1 + 1 = 2

r4 = fun1(4)------->fun1(3) + fun1(2) ----->func1(1) + func1(2) + fun1(2) ---->1 + 1 + 1 = 3

r5 = fun1(5) ----->fun1(4) + fun1(3) ----->fun1(3) + fun1(2) + func1(1) + func1(2)--->func1(1) + func1(2) ++ fun1(2) + func1(1) + func1(2)--->5

.....

rn = fun1(n) ----->fun1(n- 1) + fun1(n - 2)

"""def func1(num):

#臨界值

if num == 1 or num == 2:

return 1

else:

#print("~~~~",num)

result = func1(num- 1) + func1(num - 2) #result = func1(1) + func1(2) --->1 + 1 =2

return result

print(func1(10))

# 例如使用遞迴計算1~某個數之間的和

"""add(1) = 1 :臨界值

add(2) = add(1) + 2

add(3) = add(2) + 3 ---->add(1) + 2 + 3 = 1 + 2 + 3

add(4) = add(3) + 4---->add(2) + 3 + 4 ---->add(1) + 2 + 3 + 4---->1 + 2 + 3 + 4

....

add(n) = add(n - 1) + n

"""def add(num):

"""n = 1

sum = 0

while n <= 100:

sum += n

n += 1

return sum

sum1 = 0

for i in range(1,num + 1):

sum1 += i

return sum1

"""#使用遞迴實現

if num == 1:

return 1

else:

return add(num - 1) + num

print(add(100))

注意:以後在實際專案中盡量少用遞迴,如果隱式迴圈的次數太多,會導致記憶體洩漏【棧溢位】

優點:簡化**,邏輯清晰

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 必須有乙個明確的結束條...