版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第613章,編程思想和方法,李盤電子郵件:定義函數(shù),什么是函數(shù)為什么需要函數(shù),函數(shù)和參數(shù),函數(shù)和帶有返回值的程序結(jié)構(gòu),什么是函數(shù)?函數(shù)是一種程序組件,它是由一個小程序組成一個大程序。函數(shù)定義:完成某個函數(shù)的一組語句被組合起來并賦予一個名稱。函數(shù)調(diào)用:語句函數(shù)的輸入稱為參數(shù)函數(shù),輸出稱為返回值。我們已經(jīng)熟悉了函數(shù):比如常用的main() Python內(nèi)置函數(shù)。例如,abs() Python標(biāo)準(zhǔn)庫函數(shù),math.sqrt()和string.split()對象的方法,如win.close()和p.draw(),3,定義函數(shù),什么是函數(shù),為什么需要函數(shù),函數(shù)和參數(shù),函數(shù)和帶有返回值的程序結(jié)構(gòu),為什么需
2、要函數(shù)?編程更容易掌握。復(fù)雜的程序被分解成更小的部分。代碼可以被重用以提高開發(fā)效率。代碼更容易維護(hù)。程序更容易理解。5.編程實(shí)例:生日歌,利用函數(shù)減少重復(fù)代碼def main () :打印“祝你生日快樂!”打印“祝你生日快樂!”打印“生日快樂,親愛的弗雷德?!贝蛴 白D闵湛鞓罚 ?,重復(fù)代碼: 1的缺點(diǎn)。耗時費(fèi)力2。代碼維護(hù)的一致性,defhappy () :打印祝你生日快樂!祝弗雷德生日快樂,親愛的弗雷德。happy()def main(): sing Fred()main(),定義函數(shù)。什么是函數(shù)?為什么需要函數(shù)和參數(shù)?帶返回值的函數(shù)和程序結(jié)構(gòu)?函數(shù)和參數(shù)。如果你想為湯姆唱生日歌,你必須寫
3、另一個函數(shù)?!俺獪贰焙汀俺ダ椎隆钡膮^(qū)別在于,第三條語句將湯姆或弗雷德寫成一個變量,這兩個函數(shù)就變成了一個函數(shù)。這個變量被稱為函數(shù)的參數(shù),它是函數(shù)的輸入。編程示例:生日歌(續(xù)),def happy () :打印祝您生日快樂def sing(人): happy()快樂()打印“appy生日快樂,親愛的”,人,快樂()打印“def main(): sing(Fred)sing(Lucy)sing(Elmer)main(),參數(shù)實(shí)例:計(jì)算利息,利息計(jì)算程序中的兩個支柱代碼類似于周期外初始支柱周期中的年度支柱解決方案:定義一個函數(shù)def繪制條(win,year,height) : bar=矩形(點(diǎn)(
4、year 1,1),點(diǎn)(year 2,height)條。設(shè)置填充(綠色)條。繪制(win),11,完成程序,def main()3360 win抽簽(獲勝)文本(分?jǐn)?shù)(0.5,2),2.5K)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,3),5.0K)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,4),7.5千米)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,5),10.0K)。draw(win) principal=input(輸入初始本金:) apr=input(輸入利率:)LaBour(win,0,1 principal * 0.0004)范圍內(nèi)的年份(1,11): principal=principal *(1 apr
5、)LaBour(win,year,1 principal * 0.0004) raw _ input(按任意鍵退出:) win.close () main(),形式參數(shù)和實(shí)際參數(shù),函數(shù)定義:def draw bar(窗口,年份,高度) 0,1principal * 0.0004)贏,0,1principal * 0.0004被稱為實(shí)際參數(shù),表示某個函數(shù)執(zhí)行的輸入?yún)?shù)傳遞:將實(shí)際參數(shù)賦給形式參數(shù),函數(shù)調(diào)用過程,函數(shù)定義def ():函數(shù)調(diào)用()調(diào)用程序掛起函數(shù)參數(shù)賦給實(shí)際參數(shù)(按位置對應(yīng))執(zhí)行函數(shù)體控制返回調(diào)用點(diǎn)的下一條語句,函數(shù)調(diào)用過程圖,定義函數(shù), 什么是函數(shù)為什么需要函數(shù)函數(shù)和參數(shù)函數(shù)和帶
6、返回值的程序結(jié)構(gòu)、帶返回值的函數(shù)、函數(shù)的返回值:函數(shù)執(zhí)行的結(jié)果函數(shù)和調(diào)用方之間的通信:從調(diào)用方通過參數(shù)輸入值,并通過返回值輸出值給調(diào)用方定義定義定義(形式參數(shù)):返回Python當(dāng)遇到返回語句并計(jì)算表達(dá)式以將結(jié)果返回給調(diào)用方時退出函數(shù)。 使用x=(),編程示例:階乘,計(jì)算n!這個函數(shù)是一個帶有參數(shù)和返回值的函數(shù)。參數(shù)為n,返回值為n!# coding=gbkdef p (n) :x=1范圍內(nèi)的I(1,n 1) :x=x * I返回x def main () :n=輸入(請輸入一個整數(shù):)打印n!的值是:p(n) main(),它定義函數(shù),什么是函數(shù),為什么需要函數(shù)和參數(shù),函數(shù)和程序結(jié)構(gòu)有返回值
7、、函數(shù)和程序結(jié)構(gòu),函數(shù)不僅是為了減少重復(fù)代碼,而且是為了使程序更加模塊化,即使代碼量增加!編程示例:計(jì)算利率將不會在主程序中重復(fù)出現(xiàn)的語句序列重寫為函數(shù),并將原來的位置改為函數(shù)調(diào)用。代碼量沒有減少而是增加了,但是程序的可讀性大大增強(qiáng)了!def CreateWin(): win=GraphWin(投資增長圖表,512,384) win.setCoords(0.0,0.0,14.0,6.0)文本(點(diǎn)(0.5,1),0.0K)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,2),2.5K)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,3),5.0K)。抽簽(獲勝)文本(分?jǐn)?shù)(0.5,4),7.5千米)。抽簽(獲勝)文本(分?jǐn)?shù)
8、(0.5,5),10.0K)。draw(win) return win,def main(): win=CreateWin()principal=input(輸入初始本金:) apr=input(輸入利率:)LaBour(win,0,1 principal * 0.0004)對于范圍(1,11)內(nèi)的年份: principal=principal *(1 apr)LaBour(win,year,1 principal * 0.0004) raw _ input(按任意鍵退出3360) win。close () main()、end、branch程序設(shè)計(jì),所有程序的執(zhí)行過程都是從前面出現(xiàn)的第一條語
9、句到最后一條語句,這叫做順序執(zhí)行。例如,找到一個變量的二次方程的解,方程1。pyimport math def main () :a,b,c=輸入(輸入三個系數(shù):)disc root=math . sqrt(b * b-4 * a * c)r1=(-b disc root)/(2 * a)R2=(-b-disc root)/(2 * a)打印解決方案是:R1,R2 main(),當(dāng)b * b * 4 * a * c 0,程序執(zhí)行錯誤!分支編程、單分支多分支異常處理、單分支編程、分支語句的基本格式和應(yīng)用條件執(zhí)行、30、30、30、單分支決策、語法if :布爾表達(dá)式3360語句序列。語義:計(jì)算是真
10、還是假。如果為真,執(zhí)行它并將控制轉(zhuǎn)到下一條語句。如果為假,直接將控制轉(zhuǎn)到下一條語句。31,31,條件表達(dá)式,簡單條件3360關(guān)系表達(dá)式,并比較兩個表達(dá)式3360=,=數(shù)字比較字符串比較:按字典順序排列。復(fù)雜條件:布爾表達(dá)式。布爾運(yùn)算符:and,or,不是布爾表達(dá)式3360導(dǎo)致了真/假、32、32和的定義,并且在日常語言中代表“and”3360、33、33或“or”或“or”:的定義。34,34,非的定義,非的意思是“負(fù)”:布爾運(yùn)算符的優(yōu)先級不是最高的,并且是第二的,或者是最低的。思考: a或者不思考b和c意味著什么?最好使用括號!35,案例:判斷兩點(diǎn)是否在同一位置,如果P1。getx ()=p
11、2。getx()和P1。gety ()=p2。gety () : #點(diǎn)是相同的,否則3360 #點(diǎn)是不同的,36,解一個變量的二次方程,導(dǎo)入數(shù)學(xué)def main(): a,b,c=輸入(輸入a,b,C:) d=b * b-4 * a * c如果(d0) :x1=(-b數(shù)學(xué)。sqrt (d)/2/a x2=(-b-math)。sqrt (d)/2/a打印x1=,x1,x2=在b * b 4 * a * c 0,程序沒有響應(yīng)來改進(jìn):在b * b 4 * a * c 0,輸出一條錯誤消息,并產(chǎn)生兩個分支。如果if : else:的語法為真,執(zhí)行它,控制轉(zhuǎn)到下一條語句;否則,執(zhí)行,控制轉(zhuǎn)到下一條語句。
12、39,求解一個變量的二次方程,導(dǎo)入math def main () :a,b,c=input (input a,b,C:) d=b * b-4 * a * c如果(d 0) :打印無根else 3360 x1=(-b math . sqrt(d)/2/a x2=(-b-math . sqrt(d)/2/a打印x1=因?yàn)槌龜?shù)為0的問題,所以增加了一個測試條件來求解一個變量的二次方程,以測試該方程是否是一個變量的二次方程,如果(ABS(a)0.0000001):打印不是一個變量中的二次方程,則# coding=gbk import math def main(): a,b,c=input(a,b,
13、c :)3360打印不是一個變量中的二次方程sqrt(d)/2/A x2=(-b-數(shù)學(xué)。sqrt (d)/2/a打印x1=,x1,x2=,x2main(),單分支程序設(shè)計(jì),分支語句和應(yīng)用程序條件執(zhí)行的基本格式,44,44,44,條件執(zhí)行程序,回想一下,Python模塊分為程序/腳本:直接可執(zhí)行模塊。最后一行是main()。也就是說,啟動程序的語句執(zhí)行模式直接執(zhí)行窗口下的模塊圖標(biāo),并且是: python。py導(dǎo)入并執(zhí)行會話中的庫或DOS命令行下的其他程序。不能直接執(zhí)行。模塊中沒有main()行被導(dǎo)入但沒有被其他程序執(zhí)行,45,45,45,條件執(zhí)行程序(續(xù)),混合模塊:可以作為獨(dú)立程序直接執(zhí)行,也可以作為庫被其他程序?qū)攵粓?zhí)行。# my file . pydefmain(): defother(): if _ name _ _=_ _ main _ : main(),導(dǎo)入模塊時,Python將在模塊中導(dǎo)入一個特殊變量_ _直接執(zhí)行模塊時,_ _ name _ _ _設(shè)置為_ _ main _ _ _,分支編程,單分支多分支異常處理,多分支決策,語法if : elif :elif els
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園六一慶典活動方案及執(zhí)行計(jì)劃
- 預(yù)制混凝土構(gòu)件安裝施工方案
- 高校輔導(dǎo)員危機(jī)應(yīng)對能力提升培訓(xùn)方案
- 安全員A證考試練習(xí)題(一)附參考答案詳解【b卷】
- 2025年播音指導(dǎo)考試真題解析+答案
- 安全員A證考試綜合提升試卷【名校卷】附答案詳解
- 2025年全國安全生產(chǎn)月活動方案全面落實(shí)部署
- 2025年押題寶典安全員A證考試題庫(精練)附答案詳解
- 2025年市場營銷策劃師能力認(rèn)證試題及答案解析
- 安全員A證考試預(yù)測復(fù)習(xí)含答案詳解(典型題)
- 高三英語一輪復(fù)習(xí)北師大版選擇性單詞默寫本
- JB-T 10833-2017 起重機(jī)用聚氨酯緩沖器
- 項(xiàng)目二 模塊四 波音737-800飛機(jī)乘務(wù)員控制面板及娛樂系統(tǒng)的操作方法課件講解
- 2022年新疆維吾爾自治區(qū)新疆生產(chǎn)建設(shè)兵團(tuán)中考數(shù)學(xué)試題(無答案)
- 福建省福州市2023-2024學(xué)年高一上學(xué)期期末考試物理試卷2
- 鋼結(jié)構(gòu)生產(chǎn)工藝流程
- 2022-2023學(xué)年四川省宜賓市高一(下)期末數(shù)學(xué)試卷(含解析)
- 教你填《廣東省普通高中學(xué)生檔案》精編版
- 大學(xué)生兼職家教個人簡歷
- 轉(zhuǎn)動極板技術(shù)簡介
- 《人類行為與社會環(huán)境》課件
評論
0/150
提交評論