欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 遞歸函數(shù)詳解及實(shí)例

 更新時(shí)間:2016年12月27日 09:23:38   投稿:lqh  
這篇文章主要介紹了Python 遞歸函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

Python 遞歸函數(shù)

如果一個(gè)函數(shù)體直接或者間接調(diào)用自己,那么這個(gè)函數(shù)就稱為遞歸函數(shù).也就是說,遞歸函數(shù)體的執(zhí)行過程中可能會(huì)返回去再次調(diào)用該函數(shù).在python里,遞歸函數(shù)不需要任何特殊的語法,但是它需要付出一定的努力去理解和創(chuàng)建.
我們會(huì)以一個(gè)簡(jiǎn)單的例子開始:寫一個(gè)函數(shù)求一個(gè)自然數(shù)中所有數(shù)字的和.在設(shè)計(jì)遞歸函數(shù)的時(shí)候,我們會(huì)尋找能把問題分解成簡(jiǎn)單的問題的方法.在這道題中,運(yùn)算符%和//可以用來把一個(gè)數(shù)分成兩部分:最低位和不包含最低位數(shù)字兩部分.

18117的數(shù)字和為:1+8+1+1+7=18.這樣我們就可以分割這個(gè)數(shù).把這個(gè)數(shù)分割成最低位7和不包含最低位數(shù)字的和1+8+1+1=11.這種分割方法給我們提供了一個(gè)算法:通過最低位n%10與n//10的數(shù)字之和相加來計(jì)算數(shù)n的數(shù)字之和.這種方法存在特殊情況:如果一個(gè)數(shù)只有一位,那么它的數(shù)字之和就是它本身.這個(gè)算法可以用遞歸函數(shù)實(shí)現(xià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

函數(shù)sum_digit的定義是完整和正確的,即使sum_digit函數(shù)在自身的函數(shù)體里被調(diào)用.

這樣求一個(gè)數(shù)的數(shù)字之和的問題就被分解成了兩部分:求除去最低位部分?jǐn)?shù)字之和,然后加上最低位.這兩個(gè)步驟全都比原問題要簡(jiǎn)單.這個(gè)函數(shù)是遞歸的,因?yàn)榈谝徊降膯栴}和原問題是相同類型的.也就是說,sum_digit的確實(shí)是我們需要去實(shí)現(xiàn)自然數(shù)數(shù)字求和的函數(shù).

我們可以理解這個(gè)遞歸函數(shù)是怎樣使用計(jì)算環(huán)境模型成功應(yīng)用的.它 不需要任何新的規(guī)范.

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

相關(guān)文章

  • python通過PyQt5實(shí)現(xiàn)登錄界面的示例代碼

    python通過PyQt5實(shí)現(xiàn)登錄界面的示例代碼

    本文主要介紹了python通過PyQt5實(shí)現(xiàn)登錄界面的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python 給圖像添加透明度(alpha通道)

    python 給圖像添加透明度(alpha通道)

    這篇文章主要介紹了python 給圖像添加透明度,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python web框架 django wsgi原理解析

    python web框架 django wsgi原理解析

    這篇文章主要介紹了python web框架 django wsgi原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值
    2019-08-08
  • Python使用BeautifulSoup抓取和解析網(wǎng)頁數(shù)據(jù)的操作方法

    Python使用BeautifulSoup抓取和解析網(wǎng)頁數(shù)據(jù)的操作方法

    在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)是不可或缺的資源,網(wǎng)頁數(shù)據(jù)作為豐富的信息來源,往往需要通過爬蟲抓取,Python的BeautifulSoup是處理HTML和XML的利器,本篇文章將詳細(xì)介紹BeautifulSoup的基本用法,并通過一個(gè)實(shí)際案例演示如何使用BeautifulSoup抓取和解析網(wǎng)頁數(shù)據(jù)
    2024-11-11
  • 深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)

    深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Python中自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 跟老齊學(xué)Python之集合的關(guān)系

    跟老齊學(xué)Python之集合的關(guān)系

    前面一節(jié)講述了集合的基本概念,注意,那里所涉及到的集合都是可原處修改的集合。還有一種集合,不能在原處修改。
    2014-09-09
  • 在python shell中運(yùn)行python文件的實(shí)現(xiàn)

    在python shell中運(yùn)行python文件的實(shí)現(xiàn)

    今天小編就為大家分享一篇在python shell中運(yùn)行python文件的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 解決python彩色螺旋線繪制引發(fā)的問題

    解決python彩色螺旋線繪制引發(fā)的問題

    今天小編就為大家分享一篇解決python彩色螺旋線繪制引發(fā)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python中Functools模塊的高級(jí)操作詳解

    Python中Functools模塊的高級(jí)操作詳解

    functools模塊是Python標(biāo)準(zhǔn)庫(kù)中的一個(gè)寶庫(kù),提供了一些有用的功能,可以幫助您更好地利用函數(shù)的潛力,下面小編就來為大家介紹一下functools模塊的相關(guān)具體使用吧
    2023-11-11
  • pandas交換行的具體實(shí)現(xiàn)

    pandas交換行的具體實(shí)現(xiàn)

    Pandas?是專注于表格數(shù)據(jù)處理的?Python?第三方庫(kù),能幫助我們完成各種各樣的表格數(shù)據(jù)操作,本文主要介紹了pandas交換行的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04

最新評(píng)論