等考二級python-第4章-函數(shù)和代碼復(fù)用市公開課一等獎省賽課獲獎?wù)n件_第1頁
等考二級python-第4章-函數(shù)和代碼復(fù)用市公開課一等獎省賽課獲獎?wù)n件_第2頁
等考二級python-第4章-函數(shù)和代碼復(fù)用市公開課一等獎省賽課獲獎?wù)n件_第3頁
等考二級python-第4章-函數(shù)和代碼復(fù)用市公開課一等獎省賽課獲獎?wù)n件_第4頁
等考二級python-第4章-函數(shù)和代碼復(fù)用市公開課一等獎省賽課獲獎?wù)n件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

全國計算機等級考試二級教程

Python語言程序設(shè)計

(年版)第1頁【第4章】

函數(shù)和代碼復(fù)用第2頁函數(shù)定義和使用函數(shù)參數(shù)傳遞:可選參數(shù)傳遞、參數(shù)名稱傳遞、函數(shù)返回值變量作用域:局部變量和全局變量考綱考點第3頁知識導(dǎo)圖第4頁函數(shù)基本使用第5頁函數(shù)是一段含有特定功效、可重用語句組,經(jīng)過函數(shù)名來表示和調(diào)用。經(jīng)過定義,一組語句等價于一個函數(shù),在需要使用這組語句地方,直接調(diào)用函數(shù)名稱即可。所以,函數(shù)使用包含兩部分:函數(shù)定義和函數(shù)使用。函數(shù)是一個功效抽象。函數(shù)定義第6頁Python定義一個函數(shù)使用def保留字,語法形式以下:

def<函數(shù)名>(<參數(shù)列表>): <函數(shù)體> return<返回值列表>函數(shù)定義第7頁函數(shù)名能夠是任何有效Python標識符參數(shù)列表是調(diào)用該函數(shù)時傳遞給它值,能夠有零個、一個或多個,當(dāng)傳遞多個參數(shù)時各參數(shù)由逗號分隔,當(dāng)沒有參數(shù)時也要保留圓括號。函數(shù)體是函數(shù)每次被調(diào)用時執(zhí)行代碼,由一行或多行語句組成。函數(shù)定義第8頁函數(shù)定義

123456#定義一個對整數(shù)n求階乘函數(shù)deffact(n):s=1foriinrange(1,n+1):s*=ireturns

假如需要返回值,使用保留字return和返回值列表。函數(shù)能夠沒有return語句,函數(shù)體結(jié)束后會將控制權(quán)返回給調(diào)用者。第9頁定義后函數(shù)不能直接運行,需要經(jīng)過“調(diào)用”才能運行。調(diào)用函數(shù)基本方法以下: <函數(shù)名>(<實際賦值參數(shù)列表>)函數(shù)使用

12345678#定義一個對整數(shù)n求階乘函數(shù)deffact(n):s=1foriinrange(1,n+1):s*=ireturns#調(diào)用整數(shù)階乘函數(shù)print(fact(100))

第10頁詳細來說,函數(shù)使用一共分為四個步驟:函數(shù)定義函數(shù)調(diào)用函數(shù)執(zhí)行函數(shù)返回函數(shù)使用第11頁1.函數(shù)定義

使用def保留字將一段代碼定義為函數(shù),需要確定函數(shù)名字、參數(shù)名字、參數(shù)個數(shù),使用參數(shù)名稱作為形式參數(shù)(占位符)編寫函數(shù)內(nèi)部功效代碼。函數(shù)使用第12頁2.函數(shù)調(diào)用

經(jīng)過函數(shù)名調(diào)用函數(shù)功效,對函數(shù)各個參數(shù)賦予實際值,實際值能夠是實際數(shù)據(jù),也能夠是在調(diào)用函數(shù)前已經(jīng)定義過變量。函數(shù)使用第13頁3.函數(shù)執(zhí)行

函數(shù)被調(diào)用后,使用實際參數(shù)(賦予形式參數(shù)實際值)參加函數(shù)內(nèi)部代碼運行,假如有結(jié)果則進行輸出。函數(shù)使用第14頁4.函數(shù)返回

函數(shù)執(zhí)行結(jié)束后,依據(jù)return保留字指示決定是否返回結(jié)果,假如返回結(jié)果,則結(jié)果將被放置到函數(shù)被調(diào)用位置,函數(shù)使用完成,程序繼續(xù)運行。函數(shù)使用第15頁函數(shù)參數(shù)傳遞第16頁函數(shù)參數(shù)在定義時能夠指定默認值,當(dāng)函數(shù)被調(diào)用時,假如沒有傳入對應(yīng)參數(shù)值,則使用函數(shù)定義時默認值替換,函數(shù)定義時語法形式以下:

def<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認值>): <函數(shù)體> return<返回值列表>可選參數(shù)傳遞第17頁需要注意,可選參數(shù)普通都放置在非可選參數(shù)后面,即定義函數(shù)時,先給出全部非可選參數(shù),然后再分別列出每個可選參數(shù)及對應(yīng)默認值??蛇x參數(shù)傳遞>>>defmultiply(x,y=10):print(x*y)>>>multiply(99)990>>>multiply(99,2)198第18頁Python語言同時支持函數(shù)按照參數(shù)名稱方式傳遞參數(shù),語法形式以下: <函數(shù)名>(<參數(shù)名>=<實際值>)參數(shù)名稱傳遞>>>defmultiply(x,y=10):print(x*y)>>>multiply(x=99)990>>>multiply(y=2,x=99)198第19頁return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用位置繼續(xù)執(zhí)行。return語句能夠出現(xiàn)在函數(shù)中任何部分,同時能夠?qū)?個、1個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處變量。

函數(shù)返回值>>>defmultiply(x,y=10):returnx*y>>>s=multiply(99,2)>>>print(s)198第20頁函數(shù)能夠沒有return,此時函數(shù)并不返回值。當(dāng)函數(shù)使用return返回多個值,能夠使用一個變量或多個變量保留結(jié)果。

函數(shù)返回值>>>defmultiply(x,y=10):returnx*y,x+y>>>s=multiply(99,2)>>>print(s)(198,101)>>>a,b=multiply(99,2)>>>print(a)198>>>print(b)101第21頁變量作用域第22頁依據(jù)程序中變量所在位置和作用范圍,變量分為局部變量和全局變量。局部變量僅在函數(shù)內(nèi)部,且作用域也在函數(shù)內(nèi)部,全局變量作用域跨越多個函數(shù)。函數(shù)返回值第23頁局部變量指在函數(shù)內(nèi)部使用變量,僅在函數(shù)內(nèi)部有效,當(dāng)函數(shù)退出時變量將不再存在。變量z是函數(shù)multiple()內(nèi)部使用變量,當(dāng)函數(shù)調(diào)用后,變量z將不存在。局部變量>>>defmultiply(x,y=10):z=x*y#z是函數(shù)內(nèi)部局部變量returnz>>>s=multiply(99,2)>>>print(s)198>>>print(z)Traceback(mostrecentcalllast):File"<pyshell#11>",line1,in<module>print(z)NameError:name'z'isnotdefined第24頁全局變量指在函數(shù)之外定義變量,在程序執(zhí)行全過程有效。全部變量在函數(shù)內(nèi)部使用時,需要提前使用保留字global申明,語法形式以下:global<全局變量>全局變量第25頁上例中,變量n是全局變量,在函數(shù)multiply()中使用時需要在函數(shù)內(nèi)部使用global申明,定義后即可使用。全局變量>>>n=2#n是全局變量>>>defmultiply(x,y=10):globalnreturnx*y*n#使用全局變量n>>>s=multiply(99,2)>>>print(s)396第26頁假如未使用保留字global申明,即使名稱相同,也不是全局變量。全局變量>>>n=2#n是全局變量>>>defmultiply(x,y=10):n=x*yreturnn#此處n不是全局變量>>>s=multiply(99,2)>>>print(s)198>>>print(n)#不改變外部全局變量值2第27頁代碼復(fù)用第28頁函數(shù)是程序一個基本抽象方式,它將一系列代碼組織起來經(jīng)過命名供其它程序使用。函數(shù)封裝直接好處是代碼復(fù)用,任何其它代碼只要輸入?yún)?shù)即可調(diào)用函數(shù),從而防止相同功效代碼在被調(diào)用處重復(fù)編寫。代碼復(fù)用產(chǎn)生了另一個好處,當(dāng)更新函數(shù)功效時,全部被調(diào)用處功效都被更新。代碼復(fù)用第29頁模塊化設(shè)計指經(jīng)過函數(shù)封裝功效將程序劃分成主程序、子程序和子程序間關(guān)系表示。模塊化設(shè)計是使用函數(shù)設(shè)計程序思索方法,以功效塊為基本單位,普通有兩個基本要求:緊耦合:盡可能合理劃分功效塊,功效塊內(nèi)部耦合緊密;松耦合:模塊間關(guān)系盡可能簡單,功效塊之間耦合度低。代碼復(fù)用第30頁耦合性指程序結(jié)構(gòu)中各模塊之間相互關(guān)聯(lián)程度,它取決于各模塊間接口復(fù)雜程度和調(diào)用方式。緊耦合指模塊或系統(tǒng)間關(guān)系緊密,存在較多或復(fù)雜相互調(diào)用。緊耦合缺點在于更新一個模塊可能造成其它模塊改變,復(fù)用較困難。松耦合普通基于消息或協(xié)議實現(xiàn),系統(tǒng)間交互簡單。代碼復(fù)用第31頁使用函數(shù)只是模塊化設(shè)計必要非充分條件,依據(jù)計算需求合理劃分函數(shù)十分主要。普通來說,完成特定功效或被經(jīng)常復(fù)用一組語句應(yīng)該采取函數(shù)來封裝,并盡可能降低函數(shù)間參數(shù)和返回值數(shù)量。代碼復(fù)用第32頁實例解析:軟文詩詞風(fēng)第33頁軟文詩詞風(fēng)將原有文章依據(jù)標點符號重新切分成短句并居中排版,對小屏幕閱讀十分有利。使用程序?qū)⑵胀ㄎ恼伦兂绍浳脑娫~風(fēng)十分有趣軟文詩詞風(fēng)第34頁軟文詩詞風(fēng)

12345678910111213141516171819txt='''人生得意須盡歡,莫使金樽空對月。天生我材必有用,千金散盡還復(fù)來。'''linewidth=30#預(yù)定輸出寬度

deflineSplit(line):plist=[',','!','?',',','。','!','?']forpinplist:line=line.replace(p,'\n')returnline.split('\n')

deflinePrint(line):globallinewidthprint(line.center(linewidth,chr(12288)))

newlines=lineSplit(txt)fornewlineinnewlines:linePrint(newline)第35頁原始文本使用變量txt保留,程序運行效果以下。軟文詩詞風(fēng)>>>

人生得意須盡歡莫使金樽空對月

天生我材必有用千金散盡還復(fù)來第36頁原始文本使用變量txt保留,程序運行效果以下。軟文詩詞風(fēng)

123456789101112txt='''三國演義上卷羅貫中

滾滾長江東逝水,浪花淘盡英雄。是非成敗轉(zhuǎn)頭空。青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。一壺濁酒喜相逢。古今多少事,都付笑談中。--調(diào)寄《臨江仙》第一回宴桃園豪杰三結(jié)義斬黃巾英雄首立功話說天下大勢,分久必合,合久必分。周末七國分爭,并入于秦。及秦滅之后,楚、漢分爭,又并入于漢。漢朝自高祖斬白蛇而起義,一統(tǒng)天下,以后光武中興,傳至獻帝,遂分為三國。'''第37頁軟文詩詞風(fēng)>>>

三國演義

上卷羅貫中

滾滾長江東逝水浪花淘盡英雄是非成敗轉(zhuǎn)頭空青山依舊在幾度夕陽紅

白發(fā)漁樵江渚上慣看秋月春風(fēng)一壺濁酒喜相逢古今多少事都付笑談中

--調(diào)寄《臨江仙》

第一回宴桃園豪杰三結(jié)義斬黃巾英雄首立功話說天下大勢分久必合合久必分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論