国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 遞歸函數詳解及實例

2019-11-25 16:26:16
字體:
來源:轉載
供稿:網友

Python 遞歸函數

如果一個函數體直接或者間接調用自己,那么這個函數就稱為遞歸函數.也就是說,遞歸函數體的執行過程中可能會返回去再次調用該函數.在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的確實是我們需要去實現自然數數字求和的函數.

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

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁德市| 天全县| 新建县| 交城县| 会宁县| 五峰| 嘉禾县| 蓝田县| 芷江| 邓州市| 图片| 崇义县| 府谷县| 荣成市| 庄河市| 白河县| 高台县| 岫岩| 同德县| 临城县| 邯郸市| 黄大仙区| 高雄县| 蓬安县| 昭平县| 资溪县| 道真| 武隆县| 安福县| 梓潼县| 龙井市| 和硕县| 宁明县| 崇文区| 乌拉特前旗| 安乡县| 那曲县| 淳化县| 华坪县| 嘉禾县| 太康县|