版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
遞歸函數(shù)與
變量的作用域函數(shù)的遞歸CCBY-NC-SA4.0嵩天遞歸的定義函數(shù)作為一種代碼封裝,可以被其他程序調(diào)用,當(dāng)然,也可以被函數(shù)內(nèi)部代碼調(diào)用。這種函數(shù)定義中調(diào)用函數(shù)自身的方式稱(chēng)為遞歸。就像一個(gè)人站在裝滿(mǎn)鏡子的房間中,看到的影像就是遞歸的結(jié)果。遞歸在數(shù)學(xué)和計(jì)算機(jī)應(yīng)用上非常強(qiáng)大,能夠非常簡(jiǎn)潔的解決重要問(wèn)題。遞歸的定義數(shù)學(xué)上有個(gè)經(jīng)典的遞歸例子叫階乘,階乘通常定義為:這個(gè)關(guān)系給出了另一種方式表達(dá)階乘的方式:
遞歸的定義階乘的例子揭示了遞歸的2個(gè)關(guān)鍵特征:(1)遞推歸納:把問(wèn)題轉(zhuǎn)化為比原問(wèn)題規(guī)模小的同類(lèi)問(wèn)題(2)遞歸終止:當(dāng)問(wèn)題小到一定規(guī)模,結(jié)束遞歸,逐層返回遞歸的使用方法微實(shí)例5.21:階乘的計(jì)算。根據(jù)用戶(hù)輸入的整數(shù)n,計(jì)算并輸出n的階乘值。微實(shí)例5.21m5.1CalFactorial.py
1234567deffact(n):ifn==0:return1else:returnn*fact(n-1)num=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))print(fact(abs(int(num))))
遞歸的調(diào)用過(guò)程遞歸的處理過(guò)程1、遞推
把復(fù)雜問(wèn)題逐步分解為最簡(jiǎn)單的問(wèn)題。2、回歸
把最簡(jiǎn)單的問(wèn)題完成后,逐漸回溯到最原先的復(fù)雜問(wèn)題。遞歸的使用方法微實(shí)例:字符串反轉(zhuǎn)。對(duì)于用戶(hù)輸入的字符串s,輸出反轉(zhuǎn)后的字符串。解決這個(gè)問(wèn)題的基本思想是把字符串看作一個(gè)遞歸對(duì)象。遞歸的使用方法
觀察這個(gè)函數(shù)的工作過(guò)程。s[0]是首字符,s[1:]是剩余字符串,將它們反向連接,可以得到反轉(zhuǎn)字符串。執(zhí)行這個(gè)程序,結(jié)果如下deffun(s):ifs=="":return""else:returnfun(s[1:])+s[0]print(fun("ABCD"))匿名函數(shù)lambda函數(shù)
匿名函數(shù),又稱(chēng)lambda函數(shù)。匿名函數(shù)并非沒(méi)有名字,而是將函數(shù)名作為函數(shù)結(jié)果返回,如下:<函數(shù)名>=lambda<參數(shù)列表>:<表達(dá)式>
lambda函數(shù)與正常函數(shù)一樣,等價(jià)于下面形式:def<函數(shù)名>(<參數(shù)列表>):return<表達(dá)式>lambda函數(shù)簡(jiǎn)單說(shuō),lambda函數(shù)用于定義簡(jiǎn)單的、能夠在一行內(nèi)表示的函數(shù),返回一個(gè)函數(shù)類(lèi)型,實(shí)例如下:>>>f=lambdax,y:x+y>>>type(f)<class'function'>>>>f(10,12)22變量的作用域CCBY-NC-SA4.0嵩天函數(shù)對(duì)變量的作用一個(gè)程序中的變量包括兩類(lèi):全局變量和局部變量。全局變量指在函數(shù)之外定義的變量,一般沒(méi)有縮進(jìn),在程序執(zhí)行全過(guò)程有效。局部變量指在函數(shù)內(nèi)部使用的變量,僅在函數(shù)內(nèi)部有效,當(dāng)函數(shù)退出時(shí)變量將不存在。全局變量和局部變量n=30#全局變量deffun(x,y):n=x*y#局部變量
print("n=",n)fun(3,4)print("n=",n)123456n=12n=30>>>全局變量的聲明全局變量在函數(shù)內(nèi)部使用時(shí),需要提前使用保留字global聲明,語(yǔ)法形式如下:global<全局變量>n=30#全局變量deffun(x,y):globaln#全局變量n=x*yprint("n=",n)fun(3,4)print("n=",n)1234567n=12n=12>>>全局變量若全局變量是組合數(shù)據(jù)類(lèi)型ls=[1,2,3]#全局變量deffun():ls=[4,5,6]#給變量ls賦值,局部變量print(ls)fun()print(ls)123456[4,5,6][1,2,3]>>>全局變量若全局變量是組合數(shù)據(jù)類(lèi)型ls=[1,2,3]#全局變量deffun():ls[0]=9#修改變量ls的元素值,全局變量print(ls)fun()print(ls)123456[9,2,3][9,2,3]>>>變量的作用域歸納對(duì)于簡(jiǎn)單類(lèi)型全局變量,函數(shù)體內(nèi)部若要使用該全局變量,必須用global聲明;否則函數(shù)體內(nèi)部使用的是局部變量。對(duì)于組合類(lèi)型全局變量,若函數(shù)體內(nèi)部,真實(shí)創(chuàng)建了同名變量,則函數(shù)內(nèi)部的是局部變量;若函數(shù)體內(nèi)部沒(méi)有創(chuàng)建同名變量,則函數(shù)體內(nèi)部使用的是全局變量。模塊CCBY-NC-SA4.0嵩天導(dǎo)入模塊import模塊名from模塊名import*from模塊名import函數(shù)名Python中部分常用的模塊小組分享討論CCBY-NC-SA4.0嵩天遞歸函數(shù)設(shè)計(jì)使用遞歸函數(shù),實(shí)現(xiàn)斐波那契數(shù)列的計(jì)算
斐波那契數(shù)列:1,1,2,3,5,8,13,21……使用遞歸函數(shù),實(shí)現(xiàn)二分法查找對(duì)有序列表ls=[7,9,12,34,57,89,123,221,345,456]進(jìn)行二分法查找,根據(jù)查找目標(biāo)數(shù)據(jù)target。若查找成功,返回True;否則返回False。low表示查找區(qū)域起始位置;high表示查找區(qū)域終止位置二分法查找算法對(duì)有序列表ls=[7,9,12,34,57,89,123,221,345,456]進(jìn)行二分法查找,根據(jù)查找目標(biāo)數(shù)據(jù)target。low表示查找區(qū)域起始位置;high表示查找區(qū)域終止位置1)如果low>high,搜索失敗,返回False2)計(jì)算中間位置,mid=(low+high)/23)如果目標(biāo)元素等
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 桶裝水環(huán)保包裝2025年度合作協(xié)議3篇
- 2025年度母子公司風(fēng)險(xiǎn)管理與內(nèi)部控制合作協(xié)議4篇
- 2025藝術(shù)培訓(xùn)家長(zhǎng)監(jiān)督協(xié)議書(shū)3篇
- 2025版木工傳統(tǒng)技藝保護(hù)與勞務(wù)傳承合同4篇
- 2025年度綠色節(jié)能地板磚生產(chǎn)與承包合作協(xié)議4篇
- 2025年度儲(chǔ)油罐清潔生產(chǎn)合同(清潔生產(chǎn)技術(shù)指導(dǎo))3篇
- 2025年度新媒體運(yùn)營(yíng)個(gè)人勞務(wù)合同模板3篇
- 2025年化藥制劑項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年中國(guó)各單位干部休養(yǎng)所行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年中國(guó)多速電機(jī)行業(yè)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 2024版?zhèn)€人私有房屋購(gòu)買(mǎi)合同
- 2024爆炸物運(yùn)輸安全保障協(xié)議版B版
- 《食品與食品》課件
- 讀書(shū)分享會(huì)《白夜行》
- 光伏工程施工組織設(shè)計(jì)
- DB4101-T 121-2024 類(lèi)家庭社會(huì)工作服務(wù)規(guī)范
- 化學(xué)纖維的鑒別與測(cè)試方法考核試卷
- 2024-2025學(xué)年全國(guó)中學(xué)生天文知識(shí)競(jìng)賽考試題庫(kù)(含答案)
- 臨床微生物檢查課件 第2章細(xì)菌的生理
- 作品著作權(quán)獨(dú)家授權(quán)協(xié)議(部分授權(quán))
- 取水泵站施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論