![2020-2021學(xué)年信息技術(shù)第六課 python函數(shù)_第1頁(yè)](http://file4.renrendoc.com/view/aa8fccbd0f0d31f00a94e146c8e74f02/aa8fccbd0f0d31f00a94e146c8e74f021.gif)
![2020-2021學(xué)年信息技術(shù)第六課 python函數(shù)_第2頁(yè)](http://file4.renrendoc.com/view/aa8fccbd0f0d31f00a94e146c8e74f02/aa8fccbd0f0d31f00a94e146c8e74f022.gif)
![2020-2021學(xué)年信息技術(shù)第六課 python函數(shù)_第3頁(yè)](http://file4.renrendoc.com/view/aa8fccbd0f0d31f00a94e146c8e74f02/aa8fccbd0f0d31f00a94e146c8e74f023.gif)
![2020-2021學(xué)年信息技術(shù)第六課 python函數(shù)_第4頁(yè)](http://file4.renrendoc.com/view/aa8fccbd0f0d31f00a94e146c8e74f02/aa8fccbd0f0d31f00a94e146c8e74f024.gif)
![2020-2021學(xué)年信息技術(shù)第六課 python函數(shù)_第5頁(yè)](http://file4.renrendoc.com/view/aa8fccbd0f0d31f00a94e146c8e74f02/aa8fccbd0f0d31f00a94e146c8e74f025.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python函數(shù)函數(shù)的概述01函數(shù)的定義
一個(gè)程序可以按不同的功能實(shí)現(xiàn)拆分成不同的模塊,而函數(shù)就是能實(shí)現(xiàn)某一部分功能的代碼塊。在Python中,定義一個(gè)函數(shù)要使用def語(yǔ)句,依次寫(xiě)出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào)(:),然后在縮進(jìn)塊中編寫(xiě)函數(shù)體,函數(shù)的返回值用return語(yǔ)句返回。注意:Python是靠縮進(jìn)塊來(lái)標(biāo)明函數(shù)的作用域范圍的,縮進(jìn)塊內(nèi)是函數(shù)體,這和其它高級(jí)編程語(yǔ)言是有區(qū)別的,比如:C/C++/java/R語(yǔ)言大括號(hào){}內(nèi)的是函數(shù)體。函數(shù)的概述01
我們以自定義一個(gè)求正方形面積的函數(shù)area_square為例,示例代碼如下:
defarea_square(x):
s=x*xreturnsPython不但能非常靈活地定義函數(shù),而且本身內(nèi)置了很多有用的函數(shù),可以直接調(diào)用。函數(shù)的概述01全局變量
在函數(shù)外面定義的變量稱為全局變量。全局變量的作用域在整個(gè)代碼段(文件、模塊),在整個(gè)程序代碼中都能被訪問(wèn)到。在函數(shù)內(nèi)部可以去訪問(wèn)全局變量。如下所示代碼:
deffoodsprice(per_price,number):
sum_price=per_price*number
print('全局變量PER_PRICE_1的值:',PER_PRICE_1)
returnsum_pricePER_PRICE_1=float(input('請(qǐng)輸入單價(jià):'))NUMBER_1=float(input('請(qǐng)輸入斤數(shù):'))SUM_PRICE_1=foodsprice(PER_PRICE_1,NUMBER_1)print('蔬菜的價(jià)格是:',SUM_PRICE_1)
函數(shù)的概述01
代碼運(yùn)行結(jié)果如下:
請(qǐng)輸入單價(jià):21請(qǐng)輸入斤數(shù):7.5全局變量PER_PRICE_1:21.0 蔬菜的價(jià)格是:157.5在上例中,我們?cè)诙x的函數(shù)foodsprice內(nèi)部去訪問(wèn)在函數(shù)外面定義的全局變量PER_PRICE_1,能得到期望的輸入結(jié)果21。
函數(shù)的概述01
在函數(shù)內(nèi)部可以去訪問(wèn)全局變量,但不要去修改全局變量,否則會(huì)得不到想要的結(jié)果。這是因?yàn)樵诤瘮?shù)內(nèi)部試圖去修改一個(gè)全局變量時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)新的同名的局部變量去代替全局變量,采用屏蔽(Shadowing)的方式,當(dāng)函數(shù)調(diào)用結(jié)束后函數(shù)的棧空間會(huì)被釋放,數(shù)據(jù)也會(huì)隨之釋放。如果要在函數(shù)內(nèi)部去修改全局變量的值,并使之在整個(gè)程序生效,采用關(guān)鍵字global即可。
函數(shù)的概述01
在函數(shù)內(nèi)部定義的參數(shù)和變量稱為局部變量,超出了這個(gè)函數(shù)的作用域局部變量是無(wú)效的,它的作用域僅在函數(shù)內(nèi)部。如下所示代碼:deffoodsprice(per_price,number):
sum_price=per_price*number
returnsum_pricePER_PRICE_1=float(input('請(qǐng)輸入單價(jià):'))NUMBER_1=float(input('請(qǐng)輸入斤數(shù):'))SUM_PRICE_1=foodsprice(PER_PRICE_1,NUMBER_1)
print('蔬菜的價(jià)格是:',SUM_PRICE_1)print('局部變量sum_price的值:',sum_price)
函數(shù)的概述01
代碼運(yùn)行結(jié)果如下:請(qǐng)輸入單價(jià):12請(qǐng)輸入斤數(shù):1.56蔬菜的價(jià)格是:18.72Traceback(mostrecentcalllast):
File"G:/6_1_3.py",line9,in<module>print('局部變量sum_price的值:',sum_price)NameError:name'sum_price'isnotdefined在上例中,我們?cè)噲D在函數(shù)作用域外訪問(wèn)函數(shù)內(nèi)的局部變量sum_price,程序運(yùn)行到此處時(shí)報(bào)出了NameError的異常,提示變量sum_price沒(méi)有定義。
函數(shù)的參數(shù)與返回值01函數(shù)的參數(shù)就是使得函數(shù)個(gè)性化的一個(gè)實(shí)例。代碼如下所示:>>>defMyFirstFunction(name_city): print(‘我喜歡的城市:’+name_city)運(yùn)行結(jié)果如下:>>>MyFirstFunction('南京')我喜歡的城市:南京>>>MyFirstFunction('上海')我喜歡的城市:上海在上例中,我們對(duì)函數(shù)MyFirstFunction的形參name_city賦予不同的實(shí)參“南京”、“上?!焙?,函數(shù)就輸出不同的結(jié)果。
函數(shù)的參數(shù)與返回值01
函數(shù)有了參數(shù)之后,函數(shù)的輸出結(jié)果變得可變了,如果需要多個(gè)參數(shù),函數(shù)用逗號(hào)“,”(英文狀態(tài)下輸入)隔開(kāi)即可。在Python中對(duì)函數(shù)參數(shù)的數(shù)量沒(méi)有限制,但是定義函數(shù)參數(shù)的個(gè)數(shù)不宜太多,一般2~3個(gè)即可。在定義函數(shù)時(shí),一般要把函數(shù)參數(shù)的意義注釋清楚,便于閱讀程序。那什么是形參和實(shí)參呢?函數(shù)小括號(hào)“()”內(nèi)的參數(shù)叫形參。而實(shí)參則是指函數(shù)在調(diào)用過(guò)程中傳遞進(jìn)來(lái)的參數(shù)。
函數(shù)的參數(shù)與返回值01參數(shù)傳遞的方式:在Python中,將函數(shù)參數(shù)分為三類:位置參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)。
(1)位置參數(shù)直接傳入?yún)?shù)數(shù)據(jù)即可,如果有多個(gè)參數(shù),位置先后順序不能改變。(2)可變參數(shù)。有2種傳遞方式:1是直接傳入?yún)?shù)值;2是先封裝成列表(list)或元組(tuple),再在封裝后的列表或元組前面添加一個(gè)星號(hào)“*”傳入。(3)關(guān)鍵字參數(shù)。有2種傳遞方式:1是直接傳入?yún)?shù)值;2是可以先將參數(shù)封裝成字典(dict),再在封裝后的字典前添加2個(gè)星號(hào)“**”傳入。
函數(shù)的參數(shù)與返回值01
位置參數(shù)和關(guān)鍵字參數(shù)
(1)位置參數(shù)我們調(diào)用函數(shù)時(shí),傳入?yún)?shù)值按照位置順序依次賦給參數(shù),這樣的參數(shù)稱為位置參數(shù)。如下所示代碼:defSub(x,y):returnx-y運(yùn)行結(jié)果如下:>>>Sub(100,30)70
函數(shù)的參數(shù)與返回值01上例中,Sub(x,y)函數(shù)有兩個(gè)參數(shù):x和y,這兩個(gè)參數(shù)都是位置參數(shù),調(diào)用函數(shù)時(shí),傳入的兩個(gè)值按照位置順序依次賦給參數(shù)x和y,得到的兩數(shù)相減的結(jié)果是70。如果交換了參數(shù)的位置,就會(huì)得到不同的結(jié)果,如上例中交換參數(shù)后的運(yùn)行結(jié)果如下:>>>Sub(30,100)-70從上面的運(yùn)行結(jié)果可以看出,交換了參數(shù)順序后的運(yùn)行結(jié)果是-70,而不是我們期望的結(jié)果70。
函數(shù)的參數(shù)與返回值01關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)就是在函數(shù)調(diào)用的時(shí)候,通過(guò)參數(shù)名指定需要賦值的參數(shù)。通常我們?cè)谡{(diào)用一個(gè)函數(shù)的時(shí)候,如果參數(shù)有多個(gè),我們常常會(huì)混淆一個(gè)參數(shù)的順序,達(dá)不到我們希望的效果。在Python中引入關(guān)鍵字參數(shù)就可解決這個(gè)潛在的問(wèn)題。如下所示代碼:>>>defSubtraction(num_1,num_2): return(num_1-num_2)
函數(shù)的參數(shù)與返回值01運(yùn)行結(jié)果如下:>>>Subtraction(34,11)23>>>Subtraction(11,34)-23>>>Subtraction(num_2=11,num_1=34)23
函數(shù)的參數(shù)與返回值01
在上例中,我們調(diào)用函數(shù)Subtraction時(shí):第1次調(diào)用函數(shù)Subtraction時(shí),給2個(gè)參數(shù)順序賦值34、11時(shí)得到的結(jié)果是23;第2次調(diào)用該函數(shù)時(shí),交換了2個(gè)賦值參數(shù)的順序得到的結(jié)果是-23,這不是所期望的結(jié)果;第3次調(diào)用該函數(shù)時(shí),引用了關(guān)鍵字參數(shù)并對(duì)其分別賦值,雖然改變了順序,但仍然得到了所期望的結(jié)果23。
函數(shù)的參數(shù)與返回值01默認(rèn)值參數(shù):運(yùn)行結(jié)果如下:>>>Subtraction()54>>>Subtraction(46)1>>>Subtraction(46,12)34
函數(shù)的參數(shù)與返回值01在上例中,函數(shù)Subtraction的功能為:返回兩個(gè)數(shù)相減的結(jié)果,在定義函數(shù)時(shí)分別給2個(gè)參數(shù)num_1,num_2賦了初值99和45,分別做了3次調(diào)用:第1次調(diào)用時(shí)沒(méi)有賦值,程序就引用了2個(gè)參數(shù)的默認(rèn)值99,45,返回的結(jié)果是54;第2次調(diào)用時(shí),給第1個(gè)參數(shù)賦值為46,程序就引用了第2個(gè)參數(shù)的默認(rèn)值45,返回的結(jié)果是1;第3次調(diào)用時(shí),給2個(gè)參數(shù)分別賦值為46和12,程序就沒(méi)有引用函數(shù)定義的默認(rèn)值,返回的結(jié)果是34。
函數(shù)的參數(shù)與返回值01可變參數(shù):當(dāng)在定義函數(shù)參數(shù)的時(shí)候,我們不知道究竟需要多少個(gè)參數(shù)的時(shí)候,只要在參數(shù)前面加上星號(hào)“*”即可,這樣的參數(shù)稱為可變參數(shù)。如下所示代碼:>>>defval_par(*param): print
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年臨時(shí)租賃協(xié)議范例(三篇)
- 2025年度安全生產(chǎn)標(biāo)準(zhǔn)化體系建設(shè)合同
- 2025年度公共場(chǎng)所安全保衛(wèi)勞務(wù)分包合同
- 智能停車場(chǎng)裝修合同范本
- 教育培訓(xùn)基地租賃合同
- 學(xué)校教室內(nèi)墻裝修工程合同
- 家電產(chǎn)品國(guó)內(nèi)物流配送協(xié)議
- 大宗商品運(yùn)輸承運(yùn)合同范本
- 主題美容院裝修協(xié)議模板
- 水產(chǎn)加工污泥轉(zhuǎn)運(yùn)協(xié)議模板
- 2025藥劑科工作人員工作計(jì)劃
- 春節(jié)節(jié)后安全教育培訓(xùn)
- 2025年新高考數(shù)學(xué)一輪復(fù)習(xí)第5章重難點(diǎn)突破02向量中的隱圓問(wèn)題(五大題型)(學(xué)生版+解析)
- 水土保持方案投標(biāo)文件技術(shù)部分
- 印刷品質(zhì)量保證協(xié)議書(shū)
- 2023年浙江省公務(wù)員錄用考試《行測(cè)》題(A類)
- CQI-23模塑系統(tǒng)評(píng)估審核表-中英文
- 南方日?qǐng)?bào)圖片管理系統(tǒng)開(kāi)發(fā)項(xiàng)目進(jìn)度管理研究任務(wù)書(shū)
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
- 2024-2030年中國(guó)煉油行業(yè)發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 小學(xué)三年級(jí)奧數(shù)入學(xué)測(cè)試題
評(píng)論
0/150
提交評(píng)論