最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python遞歸實(shí)現(xiàn)猴子吃桃問(wèn)題及解析

 更新時(shí)間:2022年07月18日 17:27:20   作者:托尼stark  
這篇文章主要介紹了Python遞歸實(shí)現(xiàn)猴子吃桃問(wèn)題及解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python遞歸實(shí)現(xiàn)猴子吃桃

猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了,求第一天共摘了多少桃子?

對(duì)于此性質(zhì)的問(wèn)題適合用遞歸的思想去解決,即當(dāng)前問(wèn)題可以轉(zhuǎn)化為性質(zhì)相同的子問(wèn)題去解決:

要想知道第一天的桃子數(shù)量,需要知道第二天的桃子數(shù)量,然后將第二天的桃子數(shù)量加1乘以2就可以得到第一天的桃子數(shù)量。按照此法進(jìn)行倒推,我已知道第十天的桃子數(shù)量為1個(gè),則第九天的桃子數(shù)量為第10天的桃子數(shù)量加1乘以2,第八天的桃子數(shù)量等于第九天的數(shù)量加1再乘以2,...

則可以定義函數(shù)去實(shí)現(xiàn):n代表天數(shù),如果輸入的n不合理,則直接退出函數(shù),如果n等于10,則返回1,否則返回其后面天數(shù)桃子數(shù)量加1再乘以2

代碼如下:

def monkey_tao(n):
    if n>10 or n<1:
        return
    elif n==10:
        return 1
    else:
        return (monkey_tao(n+1)+1)*2
print (monkey_tao(1))

Python函數(shù)(閏年&猴子偷桃)問(wèn)題

函數(shù)

1. 函數(shù)簡(jiǎn)介

  • 函數(shù)也是一個(gè)對(duì)象
  • 函數(shù)用來(lái)保存一些可執(zhí)行的代碼,并且可以在需要時(shí),對(duì)這些語(yǔ)句進(jìn)行多次調(diào)用
  • 語(yǔ)法:
def 函數(shù)名([形參1,形參2,形參3....]):
? ? 代碼塊

注意:

  • 函數(shù)名必須符合標(biāo)識(shí)符的規(guī)范(可以包含字母、數(shù)字、下劃線但是不能以數(shù)字開(kāi)頭)

print是函數(shù)對(duì)象 print()是調(diào)用函數(shù)

函數(shù)的參數(shù)

形參和實(shí)參

  • 形參(形式參數(shù)) 定義形參就相當(dāng)于在函數(shù)內(nèi)部聲明了變量,但是并不是賦值
  • 實(shí)參(實(shí)際參數(shù))指定了形參,那么在調(diào)用函數(shù)時(shí)必須傳遞實(shí)參,實(shí)參將會(huì)賦值給對(duì)應(yīng)的形參,簡(jiǎn)單來(lái)說(shuō)有幾個(gè)形參就要有幾個(gè)實(shí)參

函數(shù)的傳遞方式

  • 定義形參時(shí),可以為形參指定默認(rèn)值。指定了默認(rèn)值以后,如果用戶傳遞了參數(shù)則默認(rèn)值不會(huì)生效。如果用戶沒(méi)有傳遞,則默認(rèn)值就會(huì)生效
  • 位置參數(shù):位置參數(shù)就是將對(duì)應(yīng)位置的實(shí)參賦值給對(duì)應(yīng)位置的形參
  • 關(guān)鍵字參數(shù) : 關(guān)鍵字參數(shù)可以不按照形參定義的順序去傳遞,而根據(jù)參數(shù)名進(jìn)行傳遞
  • 混合使用位置參數(shù)和關(guān)鍵字參數(shù)的時(shí)候必須將位置參數(shù)寫(xiě)到關(guān)鍵字參數(shù)前面去

不定長(zhǎng)參數(shù)

  • 定義函數(shù)時(shí),可以在形參前面加一個(gè)*,這樣這個(gè)形參可以獲取到所有的實(shí)參,它會(huì)將所有的實(shí)參保存到一個(gè)元組中
  • 帶*號(hào)的形參只能有一個(gè),可以和其他參數(shù)配合使用
  • *形參只能接受位置參數(shù),不能接受關(guān)鍵字參數(shù)
  • **形參可以接收其他的關(guān)鍵字參數(shù),它會(huì)將這些參數(shù)統(tǒng)一保存到字典當(dāng)中。字典的key就是參數(shù)的名字,字典的value就是參數(shù)的值
  • **形參只有一個(gè),并且必須寫(xiě)在所有參數(shù)的后面

參數(shù)的解包

  • 傳遞實(shí)參時(shí),也可以在序列類(lèi)型的參數(shù)前添加星號(hào),這樣它會(huì)自動(dòng)的將序列中元素依次作為參數(shù)傳遞
  • 要求序列中的元素的個(gè)數(shù)必須和形參的個(gè)數(shù)一致 函數(shù)中

1.函數(shù)的返回值

  • 返回值就是函數(shù)執(zhí)行以后返回的結(jié)果
  • 通過(guò)return來(lái)指定函數(shù)的返回值
  • return后面可以跟任意對(duì)象,返回值甚至可以是一個(gè)函數(shù)

2.文檔字符串

  • help()是Python中內(nèi)置函數(shù),通過(guò)help()函數(shù)可以查詢Python中函數(shù)的用法
  • 在定義函數(shù)時(shí),可以在函數(shù)內(nèi)部編寫(xiě)文檔字符串,文檔字符串就是對(duì)函數(shù)的說(shuō)明

函數(shù)的作用域

  • 作用域(scope)
  • 作用域指的是變量生效的區(qū)域
  • 在Python中一共有兩種作用域
  • 全局作用域

全局作用域在程序執(zhí)行時(shí)創(chuàng)建,在程序執(zhí)行結(jié)束時(shí)銷(xiāo)毀

所有函數(shù)以外的區(qū)域都是全局作用域

在全局作用域中定義的變量,都是全局變量,全局變量可以在程序的任意位置進(jìn)行訪問(wèn)

函數(shù)作用域

  • 函數(shù)作用域在函數(shù)調(diào)用時(shí)創(chuàng)建,在調(diào)用結(jié)束時(shí)銷(xiāo)毀
  • 函數(shù)每調(diào)用一次就會(huì)產(chǎn)生一個(gè)新的函數(shù)作用域
  • 在函數(shù)作用域中定義的變量,都是局部變量,它只能在函數(shù)內(nèi)部被訪問(wèn)

命名空間

  • 命名空間實(shí)際上就是一個(gè)字典,是一個(gè)專(zhuān)門(mén)用來(lái)存儲(chǔ)變量的字典
  • locals()用來(lái)獲取當(dāng)前作用域的命名空間
  • 如果在全局作用域中調(diào)用locals()則獲取全局命名空間,如果在函數(shù)作用域中調(diào)用locals()則獲取函數(shù)命名空間
  • 返回值是一個(gè)字典

遞歸函數(shù)

  • 遞歸是解決問(wèn)題的一種方式,它的整體思想,是將一個(gè)大問(wèn)題分解為一個(gè)個(gè)的小問(wèn)題,直到問(wèn)題無(wú)法分解時(shí),在去解決問(wèn)題
  • 遞歸式函數(shù)有2個(gè)條件

基線條件 問(wèn)題可以被分解為最小問(wèn)題,當(dāng)滿足基線條件時(shí),遞歸就不執(zhí)行了

遞歸條件 可以將問(wèn)題繼續(xù)分解的條件

作業(yè)

閏年

用函數(shù)實(shí)現(xiàn)一個(gè)判斷用戶輸入的年份是否是閏年的程序

  • 能被400整除的年份
  • 能被4整除,但是不能被100整除的年份

以上2種方法滿足一種即為閏年

def leap_year():
    i = int(input('請(qǐng)輸入一個(gè)年份:'))
    if i%400 == 0 or (i%4 == 0 and i%100 != 0):
        print('此年分是閏年')
    else:
        print('次年分不是閏年')
leap_year()

運(yùn)行結(jié)果:

猴子吃桃問(wèn)題(遞歸)

猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了,求第一天共摘了多少桃子?

def hou_tao(i, x):       # i為天數(shù)  x為剩余桃子數(shù)
    if i == 1:
        return x
    else:
        return (hou_tao(i-1, x) + 1)*2
print(f'第一天共摘{hou_tao(10, 1)}個(gè)桃子')

運(yùn)行結(jié)果:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何通過(guò)python代碼根據(jù)模板修改變量生成新yaml文件

    如何通過(guò)python代碼根據(jù)模板修改變量生成新yaml文件

    有些時(shí)候,需要根據(jù)一個(gè)yaml模板創(chuàng)建多個(gè)yaml文件實(shí)例,我們先寫(xiě)一個(gè)yaml文件模板,然后通過(guò)python代碼修改模板中的變量,存儲(chǔ)為一個(gè)新的yaml文件,需要配合python的庫(kù)Template及ymal使用,本文給大家講解的非常詳細(xì),需要的朋友跟隨小編一起看看吧
    2023-11-11
  • python腳本實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出excel格式的簡(jiǎn)單方法(推薦)

    python腳本實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出excel格式的簡(jiǎn)單方法(推薦)

    下面小編就為大家?guī)?lái)一篇python腳本實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出Excel格式的簡(jiǎn)單方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • Django實(shí)現(xiàn)內(nèi)容緩存實(shí)例方法

    Django實(shí)現(xiàn)內(nèi)容緩存實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于Django實(shí)現(xiàn)內(nèi)容緩存實(shí)例方法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2020-06-06
  • Python復(fù)制文件的9個(gè)方法小結(jié)

    Python復(fù)制文件的9個(gè)方法小結(jié)

    本文主要介紹了Python復(fù)制文件的9個(gè)方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Python實(shí)現(xiàn)返回?cái)?shù)組中第i小元素的方法示例

    Python實(shí)現(xiàn)返回?cái)?shù)組中第i小元素的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)返回?cái)?shù)組中第i小元素的方法,結(jié)合實(shí)例形式分析了Python針對(duì)數(shù)組的遍歷、排序、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • python怎么去除字符串最后的換行符‘\n’

    python怎么去除字符串最后的換行符‘\n’

    這篇文章主要介紹了python去除字符串最后的換行符'\n',本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • TensorFlow2.0矩陣與向量的加減乘實(shí)例

    TensorFlow2.0矩陣與向量的加減乘實(shí)例

    今天小編就為大家分享一篇TensorFlow2.0矩陣與向量的加減乘實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python作用域用法實(shí)例詳解

    Python作用域用法實(shí)例詳解

    這篇文章主要介紹了Python作用域用法,結(jié)合實(shí)例形式詳細(xì)分析了Python作用域概念,用法與相關(guān)函數(shù)的使用技巧,需要的朋友可以參考下
    2016-03-03
  • Windows系統(tǒng)下安裝tensorflow的配置步驟

    Windows系統(tǒng)下安裝tensorflow的配置步驟

    這篇文章主要介紹了Windows系統(tǒng)下安裝tensorflow,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 使用pyecharts無(wú)法import Bar的解決方案

    使用pyecharts無(wú)法import Bar的解決方案

    這篇文章主要介紹了使用pyecharts無(wú)法import Bar的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01

最新評(píng)論

宁阳县| 海门市| 普兰县| 靖远县| 江西省| 开封县| 信宜市| 长阳| 和静县| 类乌齐县| 久治县| 昌图县| 宜良县| 佛冈县| 潼关县| 南丰县| 云阳县| 焉耆| 丁青县| 东明县| 元谋县| 临洮县| 太仓市| 普陀区| 东乡| 无锡市| 额尔古纳市| 城口县| 凤阳县| 天祝| 石阡县| 雷州市| 阿拉善右旗| 休宁县| 会东县| 建阳市| 色达县| 石台县| 若尔盖县| 遂宁市| 永仁县|