Python程序設計第6章函數(shù)的設計和使用(第8次課)_第1頁
Python程序設計第6章函數(shù)的設計和使用(第8次課)_第2頁
Python程序設計第6章函數(shù)的設計和使用(第8次課)_第3頁
Python程序設計第6章函數(shù)的設計和使用(第8次課)_第4頁
Python程序設計第6章函數(shù)的設計和使用(第8次課)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1計算機編程導論計算機編程導論 課程建設組課程建設組 編著編著2014.2014.10102第第6 6章章函數(shù)的設計和使用設計和使用1.問題的引入問題的引入2. 函數(shù)基礎(chǔ)知識函數(shù)基礎(chǔ)知識36.1 問題的引入【問題【問題6-1】計算三個圓的面積和周長,這三個圓的半徑分別為2,3,4。分析:分析:按照已學過的知識,解決該問題的程序如下:#Ques6_1.pya=2area_a=3.14*a*aperimeter_a=3.14*2*aprint 半徑為2的圓的面積為:, area_aprint 半徑為2的圓的周長為:, perimeter_ab=3area_b=3.14*b*bperimeter_b

2、=3.14*2*bprint 半徑為3的圓的面積為:, area_bprint 半徑為3的圓的周長為:, perimeter_b4c=4area_c=3.14*c*cperimeter_c=3.14*2*cprint 半徑為4的圓的面積為:,area_cprint 半徑為4的圓的周長為:, perimeter_c程序運行結(jié)果:半徑為2的圓的面積為: 12.56半徑為2的圓的周長為: 12.56半徑為3的圓的面積為: 28.26半徑為3的圓的周長為: 18.84半徑為4的圓的面積為: 50.24半徑為4的圓的周長為: 25.125 這三段基本相同的代碼是否能夠只寫一次呢? 對于這樣的問題,我們可

3、以使用函函數(shù)數(shù)來解決,使計算圓面積和周長的這段代碼得以重用。66.2 黑箱模型 黑箱模型指所建立的模型只考慮輸入與輸出,而與過程機理無關(guān)。76.3 函數(shù)基礎(chǔ)知識6.3.1 函數(shù)的定義函數(shù)定義格式如下:def 函數(shù)名(參數(shù)):(函數(shù)體)函數(shù)定義格式如下:def 函數(shù)名(參數(shù)):(函數(shù)體)函數(shù)定義格式如下:def 函數(shù)名(參數(shù)):(函數(shù)體)8【例6-1】 定義一個輸出函數(shù),打印出Hello World!。 開始調(diào)用函數(shù)sayHello()結(jié)束框圖:框圖: 程序:程序:#Exp6_1.pydef sayHello( ): #函數(shù)定義print Hello World! #函數(shù)體#主程序sayHell

4、o( ) #函數(shù)調(diào)用程序運行結(jié)果:程序運行結(jié)果:Hello World!你能區(qū)分主程序和函數(shù)嗎?96.3.2 形參和實參 在定義函數(shù)時,函數(shù)名后面括號中的變量稱為形參形參 在調(diào)用函數(shù)時,可以通過參數(shù)將一些值傳遞給函數(shù)處理,這些在調(diào)用函數(shù)時提供給函數(shù)的值稱為實參實參?!纠纠?-2】用函數(shù)調(diào)用的方法來解決6.1節(jié)中的問題,如圖6-4所示。程序:# Exp6_2.pydef circle(r):area=3.14*r*rperimeter=2*3.14*rprint 半徑為,r,的圓面積為:, areaprint 半徑為,r,的圓周長為:, perimeter#主程序circle(2) #函數(shù)調(diào)用

5、circle(3) #函數(shù)調(diào)用circle(4) #函數(shù)調(diào)用10參數(shù)傳遞示意圖大路小路11【例【例6-3】 編寫函數(shù),實現(xiàn)比較兩個數(shù)的大小,并輸出其中較大的數(shù),并調(diào)用函數(shù)。程序:程序: #Exp6_3.pydef printMax(a, b):if ab: pirnt a, is the maxelse: print b, is the max#主程序 printMax(3, 4) #傳遞兩個實數(shù)實參x=5y=7printMax(x, y) #傳遞兩個變量實參請回答問題:printMax(x+x, y) 將輸出什么? 程序運行結(jié)果:程序運行結(jié)果:4 is the max7 is the max

6、126.3.3 return語句return語句用來從一個函數(shù)中返回,即跳出函數(shù),也可用return語句從函數(shù)中返回一個值?!纠?-4】 用return語句返回值。# Exp6_4.pydef maximum( x, y ):if xy:return xelse:return y#主程序print maximum( 2, 3 )程序運行結(jié)果:3a=maximum(2,3)print a136.4 變量的作用域變量的作用域當引入函數(shù)的概念之后,就出現(xiàn)了變量作用域的問題。變量起作用的范圍稱為變量的作用域。一個變量在函數(shù)外部定義和在函數(shù)內(nèi)部定義,其作用域是不同的。如果我們用特殊的關(guān)鍵字定義一個變量,

7、也會改變其作用域。146.4.1 局部變量在函數(shù)內(nèi)定義的變量只在該函數(shù)內(nèi)起作用,稱為局部變量。程序運行結(jié)果:x is 50changed local x to 2x is still 50【例6-5】 使用局部變量。#Exp6_5.pydef func( x ): print x is, x x=2 print changed local x to, x#主程序x=50func( x )print x is still, x注意:本例有三個不同的注意:本例有三個不同的x,函數(shù)外定義的,函數(shù)外定義的x、形參、形參x、函數(shù)內(nèi)定、函數(shù)內(nèi)定義的義的x ,在內(nèi)存中是三個不同的單元。,在內(nèi)存中是三個不同的

8、單元。156.4.2 全局變量 首先,在函數(shù)外定義的變量是全局變量,在其下方調(diào)用的函數(shù)中都能獲得其值。但在函數(shù)中對其賦值不會改變?nèi)肿兞康闹刀a(chǎn)生一個局部變量,如例6-5所示。 如果想要在函數(shù)內(nèi)部給一個定義在函數(shù)外的變量賦值,那么需要在函數(shù)內(nèi)部用global來說明。global也能在函數(shù)內(nèi)部定義出全局變量。下面是global的用法:(1)一個變量已在函數(shù)外定義,如果在函數(shù)內(nèi)需要為這個變量賦值,并要將這個賦值結(jié)果反映到函數(shù)外,可以在函數(shù)內(nèi)用global聲明這個變量,將其定義為全局變量。(2)在函數(shù)內(nèi)部直接將一個變量聲明為全局變量,在函數(shù)外沒有聲明,在調(diào)用這個函數(shù)之后,將增加為新的全局變量。16【

9、例6-6】 在函數(shù)內(nèi)使用外部定義的全局變量。# Exp6_6.pydef func( ): global x print x is, x x=2 print changed local x to, x#主程序x=50func( )print value of x is, x程序運行結(jié)果:x is 50changed local x to 2value of x is 217【例6-7】 把函數(shù)內(nèi)定義的變量聲明為全局變量。# Exp6_7.pydef func( ): global x x=2 print x=, x#主程序func( )print x=, x程序運行結(jié)果:x=2x=2思考: 主

10、程序中的兩行代碼調(diào)順序是否可行?186.5 參數(shù)的類型6.5.1 默認參數(shù)def 函數(shù)名(形參名=默認值,)【例6-8】 使用默認參數(shù)值。程序:# Exp6_8.pydef say( message, times =1 ):print message * times#主程序say( Hello )say( World, 5 )程序運行結(jié)果:HelloWorldWorldWorldWorldWorld196.5 參數(shù)的類型6.5.2 關(guān)鍵參數(shù) 指實參【例6-9】 使用關(guān)鍵參數(shù)。# Exp6_9.pydef func( a, b=5, c=10 ): print a is, a, and b is, b, and c is, c#主程序func( 3, 7 )func( 25, c=24 )func( c=50, a=100 )程序運行結(jié)果:a is 3 and b is 7 and c is 10a is 25 and b is 5 and c is 24a is 100 and b is 5 and c is 5020練習練習1:寫一個

溫馨提示

  • 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

提交評論