PYTHON 遞迴函式

2021-07-12 04:33:47 字數 1058 閱讀 4541

如果乙個函式體直接或者間接呼叫自己,那麼這個函式就稱為遞迴函式.也就是說,遞迴函式體的執行過程中可能會返回去再次呼叫該函式.在python裡,遞迴函式不需要任何特殊的語法,但是它需要付出一定的努力去理解和建立.

我們會以乙個簡單的例子開始:寫乙個函式求乙個自然數中所有數字的和.在設計遞迴函式的時候,我們會尋找能把問題分解成簡單的問題的方法.在這道題中,運算子%和//可以用來把乙個數分成兩部分:最低位和不包含最低位數字兩部分.

18117的數字和為:1+8+1+1+7=18.這樣我們就可以分割這個數.把這個數分割成最低位7和不包含最低位數字的和1+8+1+1=11.這種分割方法給我們提供了乙個演算法:通過最低位n%10與n//10的數字之和相加來計算數n的數字之和.這種方法存在特殊情況:如果乙個數只有一位,那麼它的數字之和就是它本身.這個演算法可以用遞迴函式實現.

def

sum_digit

(n):

"""return the sum of the digit of positive integer n."""

if n < 10:

return n

else:

last = n % 10

all_but_last = n // 10

return sum_digit(all_but_last) + last

函式sum_digit的定義是完整和正確的,即使sum_digit函式在自身的函式體裡被呼叫.

這樣求乙個數的數字之和的問題就被分解成了兩部分:求除去最低位部分數字之和,然後加上最低位.這兩個步驟全都比原問題要簡單.這個函式是遞迴的,因為第一步的問題和原問題是相同型別的.也就是說,sum_digit的確實是我們需要去實現自然數數字求和的函式.

我們可以理解這個遞迴函式是怎樣使用計算環境模型成功應用的.它 不需要任何新的規範.

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