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

python遞歸函數(shù)使用詳解

 更新時(shí)間:2023年09月13日 08:32:43   作者:zhangfanshixiaobai  
遞歸函數(shù)是一種在函數(shù)內(nèi)部調(diào)用自身的編程技巧。在Python中,我們可以使用遞歸函數(shù)來解決一些需要重復(fù)執(zhí)行相同操作的問題。遞歸函數(shù)通常包含兩個(gè)部分:基本情況和遞歸情況?;厩闆r是指函數(shù)停止調(diào)用自身的條件,而遞歸情況是指函數(shù)調(diào)用自身來解決更小規(guī)模的問題。

課前練習(xí)

請(qǐng)實(shí)現(xiàn)一個(gè)裝飾器,把'函數(shù)的返回值'+100然后'返回'

def ount(fun):
    def werrod(*ardes,**warrrts):
        res=fun(*ardes,**warrrts)
        return res+100
    return werrod
@ount
def funs(intes):
    return int(intes)
res=funs(100)
print(res)

請(qǐng)實(shí)現(xiàn)一個(gè)裝飾器,通過一次調(diào)用使函數(shù)重復(fù)執(zhí)行5次

def ount(fun):
    def werrod(*ardes,**warrrts):
        count=0
        while count<5:
            print('輸出')
            fun(*ardes,**warrrts)
            count+=1
    return werrod
@ount
def funs():
    print('循環(huán)')
funs()

請(qǐng)實(shí)現(xiàn)一個(gè)裝飾器每次調(diào)用函數(shù)時(shí),將函數(shù)名字寫入文件中

def ount(fun):
    def werrod(*ardes,**warrrts):
        with open('qw','a',encoding='utf-8')as  f:
            f.write(f'name={fun.__name__}\n')
            fun(*ardes,**warrrts)
    return werrod
@ount
def funs():
    pass
funs()

遞歸函數(shù)

遞歸:直接或者間接的調(diào)用其他函數(shù)
def index():
    print('from index')
    func()
def func():
    print('from func')
    index()
func()
遞歸在實(shí)際編碼中是不允許出現(xiàn)的,一旦出現(xiàn)了無限遞歸就會(huì)直接報(bào)錯(cuò)
1. 遞推
        一層一層的往下尋找答案
2. 回溯
        通過最后一個(gè)結(jié)果往回尋找最開始的那個(gè)答案
    遞歸是必須有結(jié)束條件!?。。?/pre>

遞歸的使用場(chǎng)景

階乘運(yùn)算
def dig(fun):
    def inter(ase):
        if ase==0:
            return 1
        else:
            return inter(ase - 1) * ase
    return inter(fun)
print(dig(5))
求第5個(gè)人的年齡
def inter(ase):
    if ase == 1:
        return 18
    return inter(ase - 1) +2#每個(gè)人的年齡相差為2
res=inter(5)
print(res)

算法二分法

二分法的原理

二分法的原理:
	1. 列表必須先排序(從小到大,從大到小)
	2. 折半查找

思路

一般思路
將列表的元素一個(gè)一個(gè)的經(jīng)行比較
然后得出結(jié)果
l = [11, 2, 3, 43, 55, 67, 23, 45, 45, 88, 99, 66,]
  for i in l:
        if i == 66:
            print('找到了')
二分法
l=[12,23,124,123,41,24,134,12]
l.sort()
target_num = 200
def my_half(l,target_num):
    if len(l) == 0:
        print('沒找到')
        return
    # 3. 取的就是中間的那個(gè)索引
    middle_index = len(l) // 2 # 向下取整 5 // 2 == 2  6 // 2 == 3
    if target_num > l[middle_index]:
        l_right = l[middle_index+1:]  #
        print(l_right)
        my_half(l_right, target_num)
    elif target_num < l[middle_index]:
        l_left = l[:middle_index]
        print(l_left)
        my_half(l_left, target_num)
    else:
        print('找到了')
my_half(l, target_num)

三元表達(dá)式

對(duì)于只有二選一的情況,我們推薦使用三元表達(dá)式
	語法結(jié)構(gòu):
res = 條件成立之后的結(jié)果 if 條件 else 條件不成立之后的結(jié)果
def my_max(a, b):
    return a if a > b else b
res = my_max(1, 2)
"""還支持嵌套"""
## 不推薦寫太多的嵌套,一般兩層就夠了,超過兩層了,建議不這樣寫,面試的時(shí)候:成數(shù)非常多
res = 2 if 2 > 10 else ( 10 if False else (100 if 10 > 5 else (2 if False else 1)))
print(res)

列表生成式

names_list = ['kevin', 'jerry', 'tank', 'oscar']
# # 列表生成式
res = [ name + '_SB' for name in names_list]
print(res)
res = [name+'_SB' if name != 'jerry' else name for name in names_list]
print(res)

遞歸函數(shù)是一種強(qiáng)大的編程技巧,可以解決一些需要重復(fù)執(zhí)行相同操作的問題。在Python中,我們可以使用遞歸函數(shù)來簡(jiǎn)化代碼邏輯和實(shí)現(xiàn)復(fù)雜的算法。遞歸函數(shù)的核心思想是將一個(gè)大問題分解為更小規(guī)模的子問題,并通過調(diào)用自身來解決這些子問題。遞歸函數(shù)通常包含兩個(gè)部分:基本情況和遞歸情況?;厩闆r是指函數(shù)停止調(diào)用自身的條件,通常是問題規(guī)模達(dá)到最小或滿足某個(gè)條件時(shí)。遞歸情況是指函數(shù)調(diào)用自身來解決更小規(guī)模的問題,直到達(dá)到基本情況。在編寫遞歸函數(shù)時(shí),需要注意遞歸深度和結(jié)束條件,否則可能導(dǎo)致無限循環(huán)或棧溢出等問題。遞歸函數(shù)的實(shí)現(xiàn)需要仔細(xì)思考問題的分解方式和遞歸調(diào)用的參數(shù)傳遞。遞歸函數(shù)在解決一些問題時(shí)可以提供簡(jiǎn)潔的解決方案,但也可能導(dǎo)致性能問題,因?yàn)檫f歸調(diào)用會(huì)占用額外的內(nèi)存和時(shí)間。因此,在使用遞歸函數(shù)時(shí),需要權(quán)衡其優(yōu)缺點(diǎn),并根據(jù)具體情況選擇合適的解決方法。

到此這篇關(guān)于python遞歸函數(shù)使用詳解的文章就介紹到這了,更多相關(guān)python遞歸函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python文件操作之批量修改文件后綴名的方法

    python文件操作之批量修改文件后綴名的方法

    這篇文章主要介紹了python文件操作之批量修改文件后綴名,需要的朋友可以參考下
    2018-08-08
  • Python用類實(shí)現(xiàn)撲克牌發(fā)牌的示例代碼

    Python用類實(shí)現(xiàn)撲克牌發(fā)牌的示例代碼

    這篇文章主要介紹了Python用類實(shí)現(xiàn)撲克牌發(fā)牌的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python中最快的循環(huán)姿勢(shì)實(shí)例詳解

    Python中最快的循環(huán)姿勢(shì)實(shí)例詳解

    python給我們提供了多個(gè)循環(huán)方法,比如while循環(huán)、for循環(huán)等,下面這篇文章主要給大家介紹了關(guān)于Python中最快的循環(huán)姿勢(shì),需要的朋友可以參考下
    2021-11-11
  • Django 多語言教程的實(shí)現(xiàn)(i18n)

    Django 多語言教程的實(shí)現(xiàn)(i18n)

    這篇文章主要介紹了Django 多語言教程的實(shí)現(xiàn)(i18n),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python?eval()函數(shù)和ast.literal_eval()的區(qū)別你知道嗎

    Python?eval()函數(shù)和ast.literal_eval()的區(qū)別你知道嗎

    這篇文章主要為大家詳細(xì)介紹了Python?eval()函數(shù)和ast.literal_eval()的區(qū),文中圖片代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python實(shí)現(xiàn)將中文大寫金額轉(zhuǎn)數(shù)字金額

    Python實(shí)現(xiàn)將中文大寫金額轉(zhuǎn)數(shù)字金額

    在日常的財(cái)務(wù)處理、票據(jù)識(shí)別或金融系統(tǒng)開發(fā)中,我們常常需要將中文大寫的金額轉(zhuǎn)換為阿拉伯?dāng)?shù)字形式,下面我們就來看看如何使用Python實(shí)現(xiàn)這一需求吧
    2025-09-09
  • Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖

    Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖

    這篇文章主要給大家介紹了關(guān)于Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖的相關(guān)資料,詞云Wordcloud是文本數(shù)據(jù)的一種可視化表示方式,它通過設(shè)置不同的字體大小或顏色來表現(xiàn)每個(gè)術(shù)語的重要性,需要的朋友可以參考下
    2024-05-05
  • pandas預(yù)處理部分地區(qū)數(shù)據(jù)案例

    pandas預(yù)處理部分地區(qū)數(shù)據(jù)案例

    本文主要介紹了pandas預(yù)處理部分地區(qū)數(shù)據(jù)案例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python復(fù)制Excel中的行、列和單元格的操作代碼

    Python復(fù)制Excel中的行、列和單元格的操作代碼

    在Excel中,復(fù)制行、列和單元格是日常工作中經(jīng)常需要進(jìn)行的操作,它可以幫助你快速調(diào)整數(shù)據(jù)布局、復(fù)制數(shù)據(jù)模板或進(jìn)行數(shù)據(jù)的批量處理,本文將詳細(xì)介紹如何使用Python將Excel中的行、列、或單元格范圍復(fù)制到指定位置,需要的朋友可以參考下
    2024-09-09
  • python 查找文件夾下所有文件 實(shí)現(xiàn)代碼

    python 查找文件夾下所有文件 實(shí)現(xiàn)代碼

    python 查找文件夾下所有文件,需要的朋友可以參考下。
    2009-07-07

最新評(píng)論

滁州市| 夹江县| 香格里拉县| 滦平县| 揭西县| 边坝县| 杭州市| 平潭县| 衡山县| 淳安县| 阿鲁科尔沁旗| 伊吾县| 神木县| 江达县| 安多县| 宁阳县| 南靖县| 温宿县| 南岸区| 天等县| 庆安县| 洪雅县| 松滋市| 墨玉县| 北安市| 防城港市| 鄂州市| 鄂温| 汝阳县| 河东区| 玉林市| 南和县| 宜良县| 太仆寺旗| 南部县| 镇赉县| 北碚区| 恭城| 姜堰市| 福安市| 家居|