版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1頁(yè)共15頁(yè)第6章:編程中常用的函數(shù)(共2課時(shí))第1課時(shí):python的函數(shù)流水線(xiàn),又稱(chēng)裝配棧,是工業(yè)上一種生產(chǎn)方式,指每個(gè)生產(chǎn)單位只專(zhuān)注處理6.1函數(shù)Python中函數(shù)的應(yīng)用非常廣泛,前函數(shù),這些都是Python中的內(nèi)置函數(shù),可以直接使用。函數(shù),即將一段有規(guī)律的、可重復(fù)使用的代碼定義成函數(shù),從而下面通過(guò)一個(gè)示例理解函數(shù)的作用。前面學(xué)習(xí)了abs函數(shù),通過(guò)該函數(shù)可以得到一個(gè)數(shù)的絕對(duì)值。不妨設(shè)想一下,如果沒(méi)有abs函數(shù),要想獲取一個(gè)字符串的長(zhǎng)度,該如何實(shí)【示例6-1】1.data=input("請(qǐng)輸入一個(gè)整數(shù):")【程序運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-1所示??偣策\(yùn)行了2次程序,第一次輸入23,輸出的絕對(duì)值也是23;第二次輸入-23,輸出的絕對(duì)值還是23。這段程序的功能與abs函數(shù)的功能一致。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug12022,Type"help"copyright","credits"or"license()”for圖6-1實(shí)例6-1的運(yùn)行結(jié)果6.2自定義函數(shù)如果在一段程序中需要多次求絕對(duì)值,則上面求絕對(duì)值的程序是不是需要編寫(xiě)多次呢?當(dāng)然不是,Python提供了很好的解決重復(fù)編寫(xiě)代碼的問(wèn)題——函數(shù)。除了Python提供的函數(shù)(即內(nèi)置函數(shù))之外,還6.2.1函數(shù)的定義方法在Python中,如果遇到需要重復(fù)編寫(xiě)代碼的情況,則可以考慮自1.def函數(shù)名([形式參數(shù)列表]):在Python中,自定義函數(shù)需要使用關(guān)鍵字def。第2頁(yè)共15頁(yè)【示例6-2】【示例6-3】【代碼解析】第3行:在循環(huán)語(yǔ)句內(nèi)部使用print函數(shù),輸出字符串“hello,world!”。第4行:調(diào)用hello函數(shù)并傳入一個(gè)整數(shù)6,在此整數(shù)6又稱(chēng)為實(shí)參,即實(shí)際參數(shù)。=====RESTART:D:/Programs/Python/Pytho圖6-36.2.4帶多個(gè)參數(shù)的函數(shù)調(diào)用時(shí)也必須在函數(shù)名后面的小括號(hào)中提供個(gè)數(shù)相等的實(shí)際參數(shù),而且順序必須【示例6-4】【代碼解析】第1行:在函數(shù)名后面的小括號(hào)中添加兩個(gè)形參a和b。第2行:定義變量c,并把a(bǔ)+b的和賦值給變量c。第3行:使用print函數(shù)輸出變量c的值。第4行:調(diào)用add函數(shù),并傳入實(shí)參100和200。第5行:再次調(diào)用add函數(shù),并傳入實(shí)參235和265?!境绦蜻\(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-4所示,第1行輸出100與200的和300;第2行輸出235與365的和參數(shù)。Python3.10.6(tags/v3.10.6:9cType"help","copyright","credits"or"license()"formore6.2.5有默認(rèn)值的參數(shù)在調(diào)用帶多個(gè)參數(shù)的函數(shù)時(shí),有些地方非常容易出錯(cuò),即實(shí)參的個(gè)數(shù)和順序必須第4頁(yè)共15頁(yè)【示例6-5】第1~3行:定義add函數(shù),帶有兩個(gè)參數(shù)a和b;參數(shù)a沒(méi)有默認(rèn)值,參致b的默認(rèn)值為0。第3行:輸出變量c的值。【示例6-6】第6行:使用return函數(shù)返回d。第7行:調(diào)用sum函數(shù),并把返回值賦給變量s。第8行:計(jì)算三科成績(jī)的平均分。第9行:使用print函數(shù)輸出該學(xué)生的平均分?!境绦蜻\(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-6所示,分別輸入語(yǔ)文成績(jī)98、數(shù)學(xué)成績(jī)96、英語(yǔ)成績(jī)97,程序輸出平均分97.0。Python3.10.6(tags/v3.10.6:9c7b4bd,Augmammamm=Type"help","copyright","credits"or"li圖6-6示例6-6的程序運(yùn)行結(jié)果6.2.7帶多個(gè)返回值的函數(shù)后面分別填寫(xiě)返回值,并用逗號(hào)分隔;如果返回值的個(gè)數(shù)超過(guò)3個(gè),則可以把返回值放入集合中,然后使 2.a=input("請(qǐng)輸入整3.b=input("請(qǐng)輸入整數(shù)2:")4.c=input("請(qǐng)輸入整數(shù)3:")8.if(a>banda>c)14.if(b>aandb>c):20.if(c>aandc>b):【代碼解析】第1~26行:定義函數(shù)max_min,需要注意的是,第26行中使用return語(yǔ)句返回兩個(gè)數(shù)據(jù)。第27行:調(diào)用該函數(shù),并把函數(shù)的返回值賦給兩個(gè)變量。第28、29行:分別輸出函數(shù)的返回值?!境绦蜻\(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-7所示,分別輸入3個(gè)數(shù)300、100、280,輸出的最大勁為300,最小數(shù)為100。===RESTART:D:/Programs/Python/Python310/1.py=圖6-7示例6-7的程序運(yùn)行結(jié)果案例6-1:福格的環(huán)球之旅【案例說(shuō)明】《八十天環(huán)游地球》的主人公福格是一位冷靜理智、做事有條不紊的英國(guó)人下了兩萬(wàn)英鎊的賭注——他可以八十天完成環(huán)游地球。于是福格帶著【案例編程】已知福格當(dāng)年的環(huán)球之旅分為兩部分:水路和陸路,水路行程為32000km,陸路行程為8000km。編寫(xiě)一段程序,輸入兩人每小時(shí)水路和陸路的行進(jìn)速度,輸出環(huán)球之旅需要的總天數(shù)。假如一天24個(gè)小時(shí)中有12個(gè)小時(shí)在路上?!啊鲍@取水路速度和陸路速度””””求旅行總天數(shù)”sp1,sp2=get_speed()#獲取兩個(gè)速度hours=t1+t2days=hours/12#12小時(shí)一天【代碼解所】程序中總共定義了3個(gè)函數(shù)。第7頁(yè)共15頁(yè)程序運(yùn)行結(jié)果如圖6-8所示,輸入水路速度為“60”,陸路速度為“200”,計(jì)需要47.8天。二二二三RESTART:D:/Programs/Python/Python310/1.py=圖6-84.求1~n之間所有3的倍數(shù)的和。注意:包含n。5.打印15次“Hello,world!”(1)方式1:打印周長(zhǎng)和面積。(2)方式2:返回周長(zhǎng)和面積。第8頁(yè)共15頁(yè)7.執(zhí)行下面代碼的運(yùn)行結(jié)果是()b=3A.沒(méi)有任何提示D.報(bào)錯(cuò)8.執(zhí)行下面代碼的輸出結(jié)果是()deffun():print(34)print(68)A.34B.68C.None10.編寫(xiě)一個(gè)函數(shù),接收一個(gè)參數(shù)n,計(jì)算并返回n的階乘。11.自定義一個(gè)名為result的函數(shù),傳入?yún)?shù)x,y,打印x+y的和的平方12.自定義個(gè)一個(gè)函數(shù),接收2個(gè)參數(shù),然后返回這兩個(gè)數(shù)的和,差,積,第9頁(yè)共15頁(yè)6.3函數(shù)的嵌套6.3.1函數(shù)的嵌套【示例6-8】【代碼解析】程序中定義了兩個(gè)函數(shù):函數(shù)a和函數(shù)b,并且函數(shù)b的定義和調(diào)用都是在函數(shù)a的內(nèi)部。第3、4行:定義函數(shù)b,并輸出字符串“-----b-----”。第6行:調(diào)用函數(shù)a?!境绦蜻\(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-9所示,先輸出了字符串”-----a-----”,再輸出字符串“-----b-----”。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug圖6-9【示例6-9】在函數(shù)中僅調(diào)用另一個(gè)函數(shù),而不定義它。在文本模式下編【代碼解析】程序中同樣定義了兩個(gè)函數(shù):函數(shù)a和函數(shù)b。第1、2行:定義函數(shù)a,并輸出字符串"--------"。第3~5行:定義函數(shù)b。第10頁(yè)共15頁(yè)第5行:在函數(shù)b中調(diào)用函數(shù)a。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug12022,21:53:4Type"help","copyright","credits"or"license()"formore======RESTART:D:/Programs/Python/Python310/2.py========圖6-10示例6-9的程序運(yùn)行結(jié)果案例6-2:全功能計(jì)算器a=input("請(qǐng)輸入第一個(gè)數(shù):")b=input("請(qǐng)輸入第二個(gè)數(shù):")print("相加的結(jié)果是:",add(a,b))print("相減的結(jié)果是:",sub(a,b))print("相乘的結(jié)果是:",mult(a,b))print("相除的結(jié)果是:",div(a,b))第3~5行:定義加法函數(shù)add。第11頁(yè)共15頁(yè)第15~18行:調(diào)用加、減、乘、除4個(gè)函數(shù),并輸出運(yùn)算結(jié)果?!境绦蜻\(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-11所示,輸入60和30后,分別輸出60和30相加、相減、相乘和相除的結(jié)果。6.4局部變量與全局變量在Python中,根據(jù)變量的作用域大小,將變量分為局部變量和全局變量。下面講解局部變量和全局6.4.1局部變量根據(jù)字面意思可知,局部變量只在局部起作用,作用域比較小。一般情況下,稱(chēng)為局部變量。局部變量只能在函數(shù)內(nèi)部使用,如果超出使用范圍(函數(shù)外部)則會(huì)報(bào)錯(cuò)?!臼纠?-12】【代碼解析】第1~3行:定義fun函數(shù)。第2行:在fun函數(shù)內(nèi)部定義一個(gè)變量a,并賦值為100。第3行:在fun函數(shù)內(nèi)部調(diào)用print函數(shù),輸出變量a的值。第4行:調(diào)用fun函數(shù)。【程序運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-14所示。圖6-14【示例6-13】第1~3行:定義fun函數(shù)。第2行:在fun函數(shù)內(nèi)部定義一個(gè)變量a,并賦值為100。第3行:在fun函數(shù)外部調(diào)用print函數(shù),輸出變量a的值。【程序運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖6-15所示,在執(zhí)行print(a)時(shí),出現(xiàn)“NameError:name'a'isnotdefined”的提示錯(cuò)誤,即找不到變量a。因?yàn)樽兞縜.因?yàn)樽兞縜是fun函數(shù)內(nèi)部一個(gè)局部變量,作用域只在fun函第12頁(yè)共15頁(yè)>>==RESTART:D:/Programs/Python/Python310/2.pyNameError:name'a'isnot圖6-15示例6-13的程序運(yùn)行結(jié)果6.4.2全局變量【示例6-14】第2~4行:定義fun函數(shù)。第4行:在fun函數(shù)內(nèi)部調(diào)用print函數(shù),輸出變量a的值。第5行:調(diào)用fun函數(shù)。程序運(yùn)行結(jié)果如圖6-16所示,第1行輸出的是局部變量a的值10,第2行輸出的是全局變量a的值圖6-16示例6-14的程序運(yùn)行結(jié)果6.4.3global關(guān)鍵字【代碼解析】第2~5行:定義fun函數(shù)。第4行:重新給全局變量a賦值為10。第6行:調(diào)用fun函數(shù)。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug12022,21:53:49)[MSCv.193264biAMD64)]onwin32Type"help”,"copyright","credits"or“l(fā)icense()"for6.5模塊第1步:先定義一個(gè)test模塊,如圖6-18所示。defsum(n):圖6-18定義test模塊第2步:創(chuàng)建一個(gè)新的py文件test1.py,其程序如圖6-19所示。在第1行中導(dǎo)入test模塊;在第2行中程序運(yùn)行結(jié)果如圖6-20所示。第14頁(yè)共15頁(yè)test1.py-D:/Programs/Python/Python310/test圖6-19圖6-20還可以
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 常見(jiàn)眩暈知識(shí)宣教
- 消化道出血患者的個(gè)案護(hù)理
- 天一聯(lián)考·齊魯名校教研共同體2024-2025學(xué)年(下)高三年級(jí)開(kāi)學(xué)考 地理試卷(含答案)
- 銅陵職業(yè)技術(shù)學(xué)院《軟件項(xiàng)目實(shí)踐JavaEE開(kāi)發(fā)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西應(yīng)用技術(shù)職業(yè)學(xué)院《有機(jī)化學(xué)(I)》2023-2024學(xué)年第二學(xué)期期末試卷
- 人才招聘市場(chǎng)的創(chuàng)新與發(fā)展機(jī)會(huì)
- 硅湖職業(yè)技術(shù)學(xué)院《學(xué)習(xí)筑夢(mèng)經(jīng)濟(jì)強(qiáng)國(guó)夢(mèng)》2023-2024學(xué)年第二學(xué)期期末試卷
- AI推動(dòng)人形機(jī)器人進(jìn)入智能時(shí)代
- 2024年02月廣東2024年深圳銀座銀行春季校園招考筆試歷年參考題庫(kù)附帶答案詳解
- 電火鍋電蒸鍋環(huán)保與可持續(xù)發(fā)展
- 咖啡種植園項(xiàng)目計(jì)劃書(shū)
- 精裝修室內(nèi)施工組織部署
- 農(nóng)用拖拉機(jī)考試題庫(kù)
- GJB438C模板-軟件開(kāi)發(fā)計(jì)劃(已按標(biāo)準(zhǔn)公文格式校準(zhǔn))
- 2023年政府采購(gòu)評(píng)審專(zhuān)家考試真題及答案
- 云端數(shù)據(jù)加密與密鑰管理解決方案
- 毒麻藥品試題答案
- 元明時(shí)期左江上思州黃姓土司問(wèn)題研究
- 傳統(tǒng)體育養(yǎng)生學(xué)
- DB4401∕T 33-2019 電梯托管標(biāo)準(zhǔn)化管理規(guī)范
- 松原市人民政府關(guān)于印發(fā)松原市招商引資服務(wù)公司組建工作實(shí)施方案的通知
評(píng)論
0/150
提交評(píng)論