第6章:編程中常用的函數(shù)_第1頁
第6章:編程中常用的函數(shù)_第2頁
第6章:編程中常用的函數(shù)_第3頁
第6章:編程中常用的函數(shù)_第4頁
第6章:編程中常用的函數(shù)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1頁共15頁第6章:編程中常用的函數(shù)(共2課時)第1課時:python的函數(shù)流水線,又稱裝配棧,是工業(yè)上一種生產(chǎn)方式,指每個生產(chǎn)單位只專注處理6.1函數(shù)Python中函數(shù)的應(yīng)用非常廣泛,前函數(shù),這些都是Python中的內(nèi)置函數(shù),可以直接使用。函數(shù),即將一段有規(guī)律的、可重復使用的代碼定義成函數(shù),從而下面通過一個示例理解函數(shù)的作用。前面學習了abs函數(shù),通過該函數(shù)可以得到一個數(shù)的絕對值。不妨設(shè)想一下,如果沒有abs函數(shù),要想獲取一個字符串的長度,該如何實【示例6-1】1.data=input("請輸入一個整數(shù):")【程序運行結(jié)果】程序運行結(jié)果如圖6-1所示??偣策\行了2次程序,第一次輸入23,輸出的絕對值也是23;第二次輸入-23,輸出的絕對值還是23。這段程序的功能與abs函數(shù)的功能一致。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug12022,Type"help"copyright","credits"or"license()”for圖6-1實例6-1的運行結(jié)果6.2自定義函數(shù)如果在一段程序中需要多次求絕對值,則上面求絕對值的程序是不是需要編寫多次呢?當然不是,Python提供了很好的解決重復編寫代碼的問題——函數(shù)。除了Python提供的函數(shù)(即內(nèi)置函數(shù))之外,還6.2.1函數(shù)的定義方法在Python中,如果遇到需要重復編寫代碼的情況,則可以考慮自1.def函數(shù)名([形式參數(shù)列表]):在Python中,自定義函數(shù)需要使用關(guān)鍵字def。第2頁共15頁【示例6-2】【示例6-3】【代碼解析】第3行:在循環(huán)語句內(nèi)部使用print函數(shù),輸出字符串“hello,world!”。第4行:調(diào)用hello函數(shù)并傳入一個整數(shù)6,在此整數(shù)6又稱為實參,即實際參數(shù)。=====RESTART:D:/Programs/Python/Pytho圖6-36.2.4帶多個參數(shù)的函數(shù)調(diào)用時也必須在函數(shù)名后面的小括號中提供個數(shù)相等的實際參數(shù),而且順序必須【示例6-4】【代碼解析】第1行:在函數(shù)名后面的小括號中添加兩個形參a和b。第2行:定義變量c,并把a+b的和賦值給變量c。第3行:使用print函數(shù)輸出變量c的值。第4行:調(diào)用add函數(shù),并傳入實參100和200。第5行:再次調(diào)用add函數(shù),并傳入實參235和265?!境绦蜻\行結(jié)果】程序運行結(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有默認值的參數(shù)在調(diào)用帶多個參數(shù)的函數(shù)時,有些地方非常容易出錯,即實參的個數(shù)和順序必須第4頁共15頁【示例6-5】第1~3行:定義add函數(shù),帶有兩個參數(shù)a和b;參數(shù)a沒有默認值,參致b的默認值為0。第3行:輸出變量c的值?!臼纠?-6】第6行:使用return函數(shù)返回d。第7行:調(diào)用sum函數(shù),并把返回值賦給變量s。第8行:計算三科成績的平均分。第9行:使用print函數(shù)輸出該學生的平均分。【程序運行結(jié)果】程序運行結(jié)果如圖6-6所示,分別輸入語文成績98、數(shù)學成績96、英語成績97,程序輸出平均分97.0。Python3.10.6(tags/v3.10.6:9c7b4bd,Augmammamm=Type"help","copyright","credits"or"li圖6-6示例6-6的程序運行結(jié)果6.2.7帶多個返回值的函數(shù)后面分別填寫返回值,并用逗號分隔;如果返回值的個數(shù)超過3個,則可以把返回值放入集合中,然后使 2.a=input("請輸入整3.b=input("請輸入整數(shù)2:")4.c=input("請輸入整數(shù)3:")8.if(a>banda>c)14.if(b>aandb>c):20.if(c>aandc>b):【代碼解析】第1~26行:定義函數(shù)max_min,需要注意的是,第26行中使用return語句返回兩個數(shù)據(jù)。第27行:調(diào)用該函數(shù),并把函數(shù)的返回值賦給兩個變量。第28、29行:分別輸出函數(shù)的返回值?!境绦蜻\行結(jié)果】程序運行結(jié)果如圖6-7所示,分別輸入3個數(shù)300、100、280,輸出的最大勁為300,最小數(shù)為100。===RESTART:D:/Programs/Python/Python310/1.py=圖6-7示例6-7的程序運行結(jié)果案例6-1:福格的環(huán)球之旅【案例說明】《八十天環(huán)游地球》的主人公福格是一位冷靜理智、做事有條不紊的英國人下了兩萬英鎊的賭注——他可以八十天完成環(huán)游地球。于是福格帶著【案例編程】已知福格當年的環(huán)球之旅分為兩部分:水路和陸路,水路行程為32000km,陸路行程為8000km。編寫一段程序,輸入兩人每小時水路和陸路的行進速度,輸出環(huán)球之旅需要的總天數(shù)。假如一天24個小時中有12個小時在路上?!啊鲍@取水路速度和陸路速度””””求旅行總天數(shù)”sp1,sp2=get_speed()#獲取兩個速度hours=t1+t2days=hours/12#12小時一天【代碼解所】程序中總共定義了3個函數(shù)。第7頁共15頁程序運行結(jié)果如圖6-8所示,輸入水路速度為“60”,陸路速度為“200”,計需要47.8天。二二二三RESTART:D:/Programs/Python/Python310/1.py=圖6-84.求1~n之間所有3的倍數(shù)的和。注意:包含n。5.打印15次“Hello,world!”(1)方式1:打印周長和面積。(2)方式2:返回周長和面積。第8頁共15頁7.執(zhí)行下面代碼的運行結(jié)果是()b=3A.沒有任何提示D.報錯8.執(zhí)行下面代碼的輸出結(jié)果是()deffun():print(34)print(68)A.34B.68C.None10.編寫一個函數(shù),接收一個參數(shù)n,計算并返回n的階乘。11.自定義一個名為result的函數(shù),傳入?yún)?shù)x,y,打印x+y的和的平方12.自定義個一個函數(shù),接收2個參數(shù),然后返回這兩個數(shù)的和,差,積,第9頁共15頁6.3函數(shù)的嵌套6.3.1函數(shù)的嵌套【示例6-8】【代碼解析】程序中定義了兩個函數(shù):函數(shù)a和函數(shù)b,并且函數(shù)b的定義和調(diào)用都是在函數(shù)a的內(nèi)部。第3、4行:定義函數(shù)b,并輸出字符串“-----b-----”。第6行:調(diào)用函數(shù)a?!境绦蜻\行結(jié)果】程序運行結(jié)果如圖6-9所示,先輸出了字符串”-----a-----”,再輸出字符串“-----b-----”。Python3.10.6(tags/v3.10.6:9c7b4bd,Aug圖6-9【示例6-9】在函數(shù)中僅調(diào)用另一個函數(shù),而不定義它。在文本模式下編【代碼解析】程序中同樣定義了兩個函數(shù):函數(shù)a和函數(shù)b。第1、2行:定義函數(shù)a,并輸出字符串"--------"。第3~5行:定義函數(shù)b。第10頁共15頁第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的程序運行結(jié)果案例6-2:全功能計算器a=input("請輸入第一個數(shù):")b=input("請輸入第二個數(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頁共15頁第15~18行:調(diào)用加、減、乘、除4個函數(shù),并輸出運算結(jié)果?!境绦蜻\行結(jié)果】程序運行結(jié)果如圖6-11所示,輸入60和30后,分別輸出60和30相加、相減、相乘和相除的結(jié)果。6.4局部變量與全局變量在Python中,根據(jù)變量的作用域大小,將變量分為局部變量和全局變量。下面講解局部變量和全局6.4.1局部變量根據(jù)字面意思可知,局部變量只在局部起作用,作用域比較小。一般情況下,稱為局部變量。局部變量只能在函數(shù)內(nèi)部使用,如果超出使用范圍(函數(shù)外部)則會報錯?!臼纠?-12】【代碼解析】第1~3行:定義fun函數(shù)。第2行:在fun函數(shù)內(nèi)部定義一個變量a,并賦值為100。第3行:在fun函數(shù)內(nèi)部調(diào)用print函數(shù),輸出變量a的值。第4行:調(diào)用fun函數(shù)。【程序運行結(jié)果】程序運行結(jié)果如圖6-14所示。圖6-14【示例6-13】第1~3行:定義fun函數(shù)。第2行:在fun函數(shù)內(nèi)部定義一個變量a,并賦值為100。第3行:在fun函數(shù)外部調(diào)用print函數(shù),輸出變量a的值?!境绦蜻\行結(jié)果】程序運行結(jié)果如圖6-15所示,在執(zhí)行print(a)時,出現(xiàn)“NameError:name'a'isnotdefined”的提示錯誤,即找不到變量a。因為變量a.因為變量a是fun函數(shù)內(nèi)部一個局部變量,作用域只在fun函第12頁共15頁>>==RESTART:D:/Programs/Python/Python310/2.pyNameError:name'a'isnot圖6-15示例6-13的程序運行結(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ù)。程序運行結(jié)果如圖6-16所示,第1行輸出的是局部變量a的值10,第2行輸出的是全局變量a的值圖6-16示例6-14的程序運行結(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步:先定義一個test模塊,如圖6-18所示。defsum(n):圖6-18定義test模塊第2步:創(chuàng)建一個新的py文件test1.py,其程序如圖6-19所示。在第1行中導入test模塊;在第2行中程序運行結(jié)果如圖6-20所示。第14頁共15頁test1.py-D:/Programs/Python/Python310/test圖6-19圖6-20還可以

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論