數(shù)據(jù)類型自定義函數(shù)PPT課件_第1頁
數(shù)據(jù)類型自定義函數(shù)PPT課件_第2頁
數(shù)據(jù)類型自定義函數(shù)PPT課件_第3頁
數(shù)據(jù)類型自定義函數(shù)PPT課件_第4頁
數(shù)據(jù)類型自定義函數(shù)PPT課件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、常用運算、使用自定義函數(shù),1,在這章讀者們將實踐函數(shù)的用法,包括定義,使用,引用等等,本書的特點是“實用”,所以這章特別說明了使用外部文件配置函數(shù),這是一種在開發(fā)中特別有用技術(shù)。本章所涉及的技術(shù)要點包括: 1)函數(shù)要先定義再使用 2)Python的縮進格式 3)形參、實參、返回值 4)局部變量與全局變量 5)常用運算 6)利用import導入機制 7)Python的格式化輸出 開門見山,看下面的例程,2,案例2-1:用函數(shù)的方法計算三角形面積,3,案例2-1導讀,無論已經(jīng)提到多少遍都要再次強調(diào)的是:python是“先定義再使用”的語言。所以函數(shù)在使用之前也需要定義。 于是,上面的程序,把6-8

2、行的函數(shù)定義放到19行之后就會有錯誤 案例第6行,用def關鍵字定義了一個函數(shù),名字叫calcu_tri,這種形式就是函數(shù)的定義,calcu_tri函數(shù)的參數(shù)是x和y,然后使用縮進的方法標志函數(shù)的范圍,calcu_tri函數(shù)只有兩條語句,這兩條語句的縮進(句首空格數(shù))相同,而從第11行開始就不是calcu_tri函數(shù)的范圍了。Python利用排版的縮進格式表達語句的歸屬范圍,第7,8行的縮進格式表明,這兩句話隸屬于第6行定義的函數(shù),def 函數(shù)定義,x,y 參數(shù),4,案例2-1導讀,第7行 calcu_tri函數(shù)的功能,首先通過打印信息提示一下程序現(xiàn)在運行的位置 第8行 return也是一個P

3、ython語法關鍵字,顧名思義,函數(shù)將在此返回(到調(diào)用位置),并帶回一個值,即:1.0*x*y/2.0。也就是說calcu_tri函數(shù)傳入?yún)?shù)x,y;并返回按公式1.0*x*y/2.0計算所得到的值。 第11行取消了函數(shù)calcu_tr的縮進,表示回到程序主框架的范疇,到15,16行,輸入了a和h,5,案例2-1導讀,第17行,像數(shù)學中調(diào)用函數(shù)一樣,程序?qū),h當作參數(shù)調(diào)用了calcu_tri函數(shù),然后程序加載calcu_tri函數(shù)并運行,直至運行到calcu_tri函數(shù)的return語句,在回到函數(shù)被調(diào)用的位置,可以看到第17行利用一個賦值將calcu_tri函數(shù)的值給了area然后在第18

4、行打印。 另外 Python也支持格式化輸出: 第19行可以改成 print “area is ”+ :d.format(area,6,案例2-1導讀,這里先提一下格式化輸出,Python的格式化輸出十分有特點,需要一段時間才能講清楚,現(xiàn)在我們用不到很復雜的方式,暫時知道輸出整型數(shù)用 :d.format(整型數(shù)),就行了,不用細究。 在真實的應用中,形如案例2-1的函數(shù)使用方式?jīng)]什么實際用途,最大的不方便就是函數(shù)不能作為一個“工具包”被其他程序利用(即復用)。所以把函數(shù)打包十分重要,請看案例2-2,7,案例2-2:開發(fā)一個求三角形面積的工具包,8,案例2-2:開發(fā)一個求三角形面積的工具包,案例

5、2-2 示范了如何使用外部文件的資源,這樣所有函數(shù)都可以被新程序復用了。本案例包括兩個文件,一個叫python02_m.py,程序?qū)⒄{(diào)用calcu_tri函數(shù),但是這個函數(shù)在l另一個文件python02_s.py中。于是在python02_m.py的第6行: from python02_s import * 這句話說“從python02_s 中引入所有函數(shù)”,于是,在python02_m.py中可以使用calcu_tri函數(shù)了。 注意,使用from引用文件模塊的時候不要有文件名的后綴“.py,9,案例2-2:開發(fā)一個求三角形面積的工具包,為什么要分成兩個文件呢呢,這樣就可以方便地進行工具包(函

6、數(shù)庫)的復用了,比如開發(fā)人員完成了求各種圖形面積的函數(shù),那么求圖2-1中的圖形陰影部分面積時,只要把包含簡單圖形求面積的函數(shù)文件 導入(import) 進來,然后把各種函數(shù)組合一下,就完成了開發(fā)任務,這種開發(fā)就簡單多了,所以盡量使用多文件機制定義函數(shù),否則函數(shù)的功效將大打折扣,10,知識梳理與擴展,函數(shù)的定義和調(diào)用 函數(shù)在調(diào)用前必須定義,比如在函數(shù)A中調(diào)用函數(shù)B,被調(diào)用的函數(shù)叫“被調(diào)函數(shù)”,例如上面提到的函數(shù)B,那么函數(shù)A就是主調(diào)函數(shù),函數(shù)被調(diào)用時使用到的參數(shù)叫“實參”(實際參數(shù)),而函數(shù)定義時使用的參數(shù)叫形參(形式參數(shù))。例如上面的示例,calcu_tri函數(shù)按參數(shù)排列順序接收a,h的值到x

7、,y中,x,y屬于calcu_tri函數(shù)定義時使用的參數(shù)被稱為“形參”,而a,h被稱為實參。calcu_tri函數(shù)中return后面的叫“返回值”。之所以出現(xiàn)實參、形參、返回值的說法對編程來說沒什么意義,只是教學和交流時指代比較明確,11,知識梳理與擴展,函數(shù)的定義和調(diào)用 在Python中形參和實參之間采用之傳遞的機制,形參的變化不會改變實參。例如: 運行以上簡短代碼,讀者會發(fā)現(xiàn)調(diào)用函數(shù)fun1前后k的值并沒有發(fā)生變化,12,知識梳理與擴展,縮進格式 函數(shù)定義時需要利用縮進格式,所謂縮進是指在代碼行開始部分的空格。代碼行開頭的前導空白用于確定語句的分組,同樣的縮進級別的語句屬于同一語句塊。 全

8、局變量與局部變量 簡單的說在函數(shù)內(nèi)部定義的變量的使用范圍僅限于函數(shù)內(nèi)部,被稱為局部變量,而不屬于任何函數(shù)的變量就是全局變量,但是想要形象地理解全局變量和局部變量有一個簡單的判斷方法,那就是變量的作用范圍由縮進格式標志的代碼塊確定,在一個代碼塊聲明的變量僅限于本(級)代碼塊使用,13,知識梳理與擴展,常用運算 Python提供豐富的計算功能,其中算術(shù)運算有: +(加), -(減), *(乘), /(除), %(取余)。他們的運算規(guī)則與常規(guī)算術(shù)運算一樣,若要提高某部分表達式的運算優(yōu)先級則在該部分表達式外面使用“()”,“()”的使用可以嵌套。另外進行除法運算時除數(shù)不能為0,計算機語言中的計算與日常

9、計算不同,需要注意數(shù)據(jù)的類型,例如兩個整型數(shù)據(jù)進行除法運算。 簡潔起見,將常用的運算總結(jié)如下表,14,知識梳理與擴展,常用運算 1、括號 (),括號內(nèi)的數(shù)據(jù)優(yōu)先處理,括號可以嵌套使用 2、算術(shù)運算符,15,知識梳理與擴展,常用運算 3、關系運算符 注意:Python的關系運算和邏輯運算中用布爾值表達兩種結(jié)果:True :真以及False :假,16,知識梳理與擴展,常用運算 4、邏輯運算符 5、運算優(yōu)先級 以上列出的運算符優(yōu)先次序為:括號,算術(shù)運算,關系運算,邏輯運算,17,知識梳理與擴展,import模塊導入機制 利用import導入機制可以將已有的函數(shù)功能模塊導入程序。這個機制方便代碼復用

10、,要注意引用功能模塊的文件時不需要后綴名。 格式化輸出 Python支持數(shù)據(jù)的格式化,優(yōu)勢是可以方便地將數(shù)據(jù)格式化成相應的字符串。常用的格式化功能如下: 1)基本格式:STRING.format( 表達式 ),STRING表達字符串 2)字符串中加如形如:nd的格式控制符,用以控制format中表達式的輸出形式 3)常用格式控制符有::nd用來輸出整形,n代表輸出所占字符列數(shù);:m.nf用來輸出浮點型,m代表輸出所占字符列數(shù),n代表小數(shù)點部分的位數(shù)。 4)若指定輸出的字符列數(shù)大于實際輸出,則輸出空格占位;若實際輸出字符數(shù)大于指定,則按實際輸出,18,小節(jié),對一個開發(fā)人員而言,代碼復用意味著工作

11、經(jīng)驗的積累,函數(shù)為開發(fā)人員提供了這種機制。開發(fā)人員可以把一些常用的功能抽象成函數(shù)形式,再把同類的多個函數(shù)(例如求各種不同圖形面積的的函數(shù))打包成一個文件,這樣就可以在開發(fā)其他程序中便利的使用以前的工作成果了。另外這種機制也可以支持小組開發(fā),例如多名開發(fā)人員組成小組,規(guī)定好功能間的接口,然后分別提交不同的功能文件,通過函數(shù)的相互調(diào)用完成程序的功能。這樣可以較大的提升開發(fā)效率,19,小節(jié),在定義函數(shù)的過程中要注意函數(shù)代碼的范圍,Python沒有利用“ ”或“begin.end”來標志代碼的開始與結(jié)束,Python利用了縮進這種更接近人類書寫的方式,但是這種方式在針對大代碼塊時也有一定劣勢,例如代碼過長導致不能在一屏中顯示所有代碼時就有容易出現(xiàn)類似“IndentationError: unexpected indent”的錯誤,這個含義是是縮進錯誤,這是書寫格式中明顯的錯誤,按提示的行號修正就可以了。另外還有因縮進導致的邏輯錯誤,此類錯誤是隱性的,系統(tǒng)不會給予提示所以更加隱蔽。實際上Python的縮進書寫機制鼓勵開發(fā)人員盡量寫短的代碼,短的方法當然包括將功能盡量包裝成函數(shù)。 Python在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論