




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
全國計算機等級考試二級教程
Python語言程序設計
(年版)第1頁【第4章】
函數和代碼復用第2頁函數定義和使用函數參數傳遞:可選參數傳遞、參數名稱傳遞、函數返回值變量作用域:局部變量和全局變量考綱考點第3頁知識導圖第4頁函數基本使用第5頁函數是一段含有特定功效、可重用語句組,經過函數名來表示和調用。經過定義,一組語句等價于一個函數,在需要使用這組語句地方,直接調用函數名稱即可。所以,函數使用包含兩部分:函數定義和函數使用。函數是一個功效抽象。函數定義第6頁Python定義一個函數使用def保留字,語法形式以下:
def<函數名>(<參數列表>): <函數體> return<返回值列表>函數定義第7頁函數名能夠是任何有效Python標識符參數列表是調用該函數時傳遞給它值,能夠有零個、一個或多個,當傳遞多個參數時各參數由逗號分隔,當沒有參數時也要保留圓括號。函數體是函數每次被調用時執行代碼,由一行或多行語句組成。函數定義第8頁函數定義
123456#定義一個對整數n求階乘函數deffact(n):s=1foriinrange(1,n+1):s*=ireturns
假如需要返回值,使用保留字return和返回值列表。函數能夠沒有return語句,函數體結束后會將控制權返回給調用者。第9頁定義后函數不能直接運行,需要經過“調用”才能運行。調用函數基本方法以下: <函數名>(<實際賦值參數列表>)函數使用
12345678#定義一個對整數n求階乘函數deffact(n):s=1foriinrange(1,n+1):s*=ireturns#調用整數階乘函數print(fact(100))
第10頁詳細來說,函數使用一共分為四個步驟:函數定義函數調用函數執行函數返回函數使用第11頁1.函數定義
使用def保留字將一段代碼定義為函數,需要確定函數名字、參數名字、參數個數,使用參數名稱作為形式參數(占位符)編寫函數內部功效代碼。函數使用第12頁2.函數調用
經過函數名調用函數功效,對函數各個參數賦予實際值,實際值能夠是實際數據,也能夠是在調用函數前已經定義過變量。函數使用第13頁3.函數執行
函數被調用后,使用實際參數(賦予形式參數實際值)參加函數內部代碼運行,假如有結果則進行輸出。函數使用第14頁4.函數返回
函數執行結束后,依據return保留字指示決定是否返回結果,假如返回結果,則結果將被放置到函數被調用位置,函數使用完成,程序繼續運行。函數使用第15頁函數參數傳遞第16頁函數參數在定義時能夠指定默認值,當函數被調用時,假如沒有傳入對應參數值,則使用函數定義時默認值替換,函數定義時語法形式以下:
def<函數名>(<非可選參數列表>,<可選參數>=<默認值>): <函數體> return<返回值列表>可選參數傳遞第17頁需要注意,可選參數普通都放置在非可選參數后面,即定義函數時,先給出全部非可選參數,然后再分別列出每個可選參數及對應默認值??蛇x參數傳遞>>>defmultiply(x,y=10):print(x*y)>>>multiply(99)990>>>multiply(99,2)198第18頁Python語言同時支持函數按照參數名稱方式傳遞參數,語法形式以下: <函數名>(<參數名>=<實際值>)參數名稱傳遞>>>defmultiply(x,y=10):print(x*y)>>>multiply(x=99)990>>>multiply(y=2,x=99)198第19頁return語句用來結束函數并將程序返回到函數被調用位置繼續執行。return語句能夠出現在函數中任何部分,同時能夠將0個、1個或多個函數運算結果返回給函數被調用處變量。
函數返回值>>>defmultiply(x,y=10):returnx*y>>>s=multiply(99,2)>>>print(s)198第20頁函數能夠沒有return,此時函數并不返回值。當函數使用return返回多個值,能夠使用一個變量或多個變量保留結果。
函數返回值>>>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頁依據程序中變量所在位置和作用范圍,變量分為局部變量和全局變量。局部變量僅在函數內部,且作用域也在函數內部,全局變量作用域跨越多個函數。函數返回值第23頁局部變量指在函數內部使用變量,僅在函數內部有效,當函數退出時變量將不再存在。變量z是函數multiple()內部使用變量,當函數調用后,變量z將不存在。局部變量>>>defmultiply(x,y=10):z=x*y#z是函數內部局部變量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頁全局變量指在函數之外定義變量,在程序執行全過程有效。全部變量在函數內部使用時,需要提前使用保留字global申明,語法形式以下:global<全局變量>全局變量第25頁上例中,變量n是全局變量,在函數multiply()中使用時需要在函數內部使用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頁代碼復用第28頁函數是程序一個基本抽象方式,它將一系列代碼組織起來經過命名供其它程序使用。函數封裝直接好處是代碼復用,任何其它代碼只要輸入參數即可調用函數,從而防止相同功效代碼在被調用處重復編寫。代碼復用產生了另一個好處,當更新函數功效時,全部被調用處功效都被更新。代碼復用第29頁模塊化設計指經過函數封裝功效將程序劃分成主程序、子程序和子程序間關系表示。模塊化設計是使用函數設計程序思索方法,以功效塊為基本單位,普通有兩個基本要求:緊耦合:盡可能合理劃分功效塊,功效塊內部耦合緊密;松耦合:模塊間關系盡可能簡單,功效塊之間耦合度低。代碼復用第30頁耦合性指程序結構中各模塊之間相互關聯程度,它取決于各模塊間接口復雜程度和調用方式。緊耦合指模塊或系統間關系緊密,存在較多或復雜相互調用。緊耦合缺點在于更新一個模塊可能造成其它模塊改變,復用較困難。松耦合普通基于消息或協議實現,系統間交互簡單。代碼復用第31頁使用函數只是模塊化設計必要非充分條件,依據計算需求合理劃分函數十分主要。普通來說,完成特定功效或被經常復用一組語句應該采取函數來封裝,并盡可能降低函數間參數和返回值數量。代碼復用第32頁實例解析:軟文詩詞風第33頁軟文詩詞風將原有文章依據標點符號重新切分成短句并居中排版,對小屏幕閱讀十分有利。使用程序將普通文章變成軟文詩詞風十分有趣軟文詩詞風第34頁軟文詩詞風
12345678910111213141516171819txt='''人生得意須盡歡,莫使金樽空對月。天生我材必有用,千金散盡還復來。'''linewidth=30#預定輸出寬度
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保留,程序運行效果以下。軟文詩詞風>>>
人生得意須盡歡莫使金樽空對月
天生我材必有用千金散盡還復來第36頁原始文本使用變量txt保留,程序運行效果以下。軟文詩詞風
123456789101112txt='''三國演義上卷羅貫中
滾滾長江東逝水,浪花淘盡英雄。是非成敗轉頭空。青山依舊在,幾度夕陽紅。白發漁樵江渚上,慣看秋月春風。一壺濁酒喜相逢。古今多少事,都付笑談中。--調寄《臨江仙》第一回宴桃園豪杰三結義斬黃巾英雄首立功話說天下大勢,分久必合,合久必分。周末七國分爭,并入于秦。及秦滅之后,楚、漢分爭,又并入于漢。漢朝自高祖斬白蛇而起義,一統天下,以后光武中興,傳至獻帝,遂分為三國。'''第37頁軟文詩詞風>>>
三國演義
上卷羅貫中
滾滾長江東逝水浪花淘盡英雄是非成敗轉頭空青山依舊在幾度夕陽紅
白發漁樵江渚上慣看秋月春風一壺濁酒喜相逢古今多少事都付笑談中
--調寄《臨江仙》
第一回宴桃園豪杰三結義斬黃巾英雄首立功話說天下大勢分久必合合久必分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧方案xx山旅游信息化規劃方案
- 2025年甘肅省武威市水利水電勘測設計院有限公司招聘1考試筆試試題(含答案)
- 單擺的教學課件
- 整式章節說課課件
- 《地心游記》教學課件
- 老師制作教學課件
- 開地辟地教學課件
- 高中英標教學課件
- 教育教學培訓課件
- 教育技術課件
- 中小學暑期安全教育班會課件
- 2025年新疆維吾爾自治區中考歷史真題(解析版)
- 2025至2030中國新能源行業市場發展分析及前景趨勢與對策戰略報告
- 空壓機考試題及答案
- 中國再生水行業發展分析與發展趨勢預測研究報告2025-2028版
- 2025至2030年中國直驅電機行業發展策略分析及投資前景研究報告
- JG/T 521-2017輕質砂漿
- T/CATCM 032-2024中藥配方顆粒臨床使用指南
- T/CCSAS 025-2023化工企業作業安全分析(JSA)實施指南
- 背債免責協議書
- 村莊路燈安裝協議書
評論
0/150
提交評論