




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
函數(shù)參數(shù)及變量作用域課前回顧內(nèi)置函數(shù):可直接調(diào)用自定義函數(shù):定義函數(shù)的關(guān)鍵詞def,返回值的關(guān)鍵詞return匿名函數(shù):使用lambda定義,只能使用一次,通常與三元運(yùn)算符連用目錄0102函數(shù)的參數(shù)變量的作用域01函數(shù)的參數(shù)函數(shù)的參數(shù)定義函數(shù)時,我們需要將函數(shù)參數(shù)的名字和位置確定下來,對于函數(shù)調(diào)用者而言,只需要了解如何傳遞正確的參數(shù),以及函數(shù)將返回什么樣的值就夠了,函數(shù)內(nèi)部的復(fù)雜邏輯被封裝起來,調(diào)用者無需了解。Python函數(shù)參數(shù)類型:位置參數(shù):調(diào)用函數(shù)時,實參默認(rèn)按位置順序傳遞(從左到右)默認(rèn)參數(shù):定義形參時,可以為形參指定默認(rèn)值可變參數(shù):傳入的參數(shù)個數(shù)可變命名關(guān)鍵字參數(shù):限制某些參數(shù)必須使用參數(shù)名傳遞函數(shù)體輸入(參數(shù))輸出(返回值)位置參數(shù)位置參數(shù)(必選參數(shù)):調(diào)用函數(shù)時,實參默認(rèn)按位置順序傳遞,第一個實參賦值給第一個形參,第二個實參賦值給第二個形參,以此類推,傳遞的實參個數(shù)必須與形參一致。代碼#自定義函數(shù):位置參數(shù)deff1(a,b):returna+b#調(diào)用自定義函數(shù)print(f1(1,2))輸出結(jié)果:3默認(rèn)參數(shù)默認(rèn)參數(shù)(缺省參數(shù)):定義形參時,可以為形參指定默認(rèn)值。調(diào)用函數(shù)時這些參數(shù)是可選的,如果沒有傳入?yún)?shù)值,則被認(rèn)為是默認(rèn)值,如果用戶傳遞了參數(shù),則默認(rèn)值沒有任何作用。定義參數(shù)時,默認(rèn)參數(shù)必須放在位置參數(shù)后面。代碼#自定義函數(shù):默認(rèn)參數(shù)deff2(a,b,c=1):returna+b+c#調(diào)用自定義函數(shù):返回值為5print(f2(1,2,2))#調(diào)用自定義函數(shù):返回值為4#未傳入?yún)?shù),c默認(rèn)為1print(f2(1,2))提示默認(rèn)參數(shù)的作用:可以降低函數(shù)調(diào)用的難度,在定義函數(shù)時,可以將參數(shù)常用值設(shè)置為默認(rèn)值,在簡單調(diào)用時,可以僅傳入位置參數(shù),需要復(fù)雜調(diào)用時又可以傳入更多參數(shù),無論簡單調(diào)用還是復(fù)雜調(diào)用均只需定義一個函數(shù)。以參數(shù)名傳遞參數(shù)在調(diào)用函數(shù)時,可以直接根據(jù)參數(shù)名去傳遞參數(shù)。代碼#自定義函數(shù):以參數(shù)名傳遞參數(shù)deff3(a,b=1):returna+b#調(diào)用自定義函數(shù)print(f3(a=1,b=4))輸出結(jié)果:5注意不允許對同一個形參進(jìn)行多次賦值;既可以為位置參數(shù)賦值,也可以為默認(rèn)參數(shù)賦值。可變參數(shù)可變參數(shù):傳入的參數(shù)個數(shù)可變,可以接收任意個參數(shù)(包含0個),在參數(shù)前加*即表示可變參數(shù),根據(jù)*個數(shù)可分為以下兩種:*形參:可變位置參數(shù)(*args),在形參前加*,調(diào)用時,多出的位置參數(shù)將會被接收形成一個元組;**形參:可變關(guān)鍵字參數(shù)(**kwargs),在形參前加**,調(diào)用時,多出的關(guān)鍵字參數(shù)將會被接收形成一個字典。可變參數(shù)代碼#自定義函數(shù):可變位置參數(shù)deff4(*args):returnargs#調(diào)用自定義函數(shù)print(f4(1,2,3))輸出結(jié)果:(1,2,3)代碼#自定義函數(shù):可變關(guān)鍵字參數(shù)deff5(**kwargs):returnkwargs#調(diào)用自定義函數(shù)print(f5(a=1,b=2,c=3))輸出結(jié)果:{'a':1,'b':2,'c':3}自定義函數(shù)要求:自定義一個函數(shù),對任意多個數(shù)字求平均值。示例1代碼#自定義函數(shù)defaverage(*args):returnsum(args)/len(args)#調(diào)用自定義函數(shù)print(average(4,8,12,24))輸出結(jié)果:12.0命名關(guān)鍵字參數(shù)命名關(guān)鍵字參數(shù)(強(qiáng)制命名參數(shù)):限制某些參數(shù)必須使用參數(shù)名傳遞,以*作為分隔符,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。代碼#自定義函數(shù):命名關(guān)鍵字參數(shù)deff6(a,b,*,c):print(a,b,c)#調(diào)用自定義函數(shù)f6(1,2,c=4)輸出結(jié)果:124代碼#自定義函數(shù):命名關(guān)鍵字參數(shù)也可提供默認(rèn)值deff7(a,b,*,c=0):print(a,b,c)#調(diào)用自定義函數(shù)f7(1,2)輸出結(jié)果:120命名關(guān)鍵字參數(shù)若想在可變位置參數(shù)后面增加固定名稱的參數(shù),必須使用命名關(guān)鍵字參數(shù),此時不需添加分隔符。代碼#自定義函數(shù)deff8(*args,b,c):print(args,b,c)#返回值:(1,2,3)45f8(1,2,3,b=4,c=5)參數(shù)組合在Python中定義函數(shù),位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)可以組合使用。參數(shù)定義的順序必須是:位置參數(shù)、默認(rèn)參數(shù)、可變位置參數(shù)、命名關(guān)鍵字參數(shù)、可變關(guān)鍵字參數(shù)。代碼#參數(shù)組合:位置參數(shù)→默認(rèn)參數(shù)→可變位置參數(shù)→命名關(guān)鍵字參數(shù)→可變關(guān)鍵字參數(shù)deff9(a,b=0,*args,c,**kwargs):print(a,b,args,c,kwargs)#調(diào)用自定義函數(shù)f9(1,2,3,4,5,c=1,d=1,e=2,f=3)輸出結(jié)果:12(3,4,5)1{'d':1,'e':2,'f':3}02變量的作用域調(diào)用變量代碼a=5#自定義函數(shù)deffn():b=8c=12print(a)#在函數(shù)內(nèi)部print(a)運(yùn)行成功print(b)#調(diào)用自定義函數(shù)fn()print(c)#在函數(shù)外部print(c)運(yùn)行失敗由此可見,變量并非在所有位置都可以調(diào)用,那么,對變量的調(diào)用有什么限制呢?變量的作用域變量作用域:指變量生效的區(qū)域,在不同作用域內(nèi)同名變量之間互不影響。在Python中變量作用域分為局部作用域和全局作用域。局部(函數(shù))作用域:在函數(shù)調(diào)用時創(chuàng)建,在調(diào)用結(jié)束時銷毀每調(diào)用一次就會產(chǎn)生一個新的函數(shù)作用域在函數(shù)作用域中定義的變量,都是局部變量(包含形參),只能在函數(shù)內(nèi)部被訪問全局作用域:在程序執(zhí)行時創(chuàng)建,在程序執(zhí)行結(jié)束時銷毀所有局部作用域以外的區(qū)域都是全局作用域在全局作用域中定義的變量,都屬于全局變量,全局變量可以在程序的任意位置被訪問變量的查找變量查找:使用變量時,優(yōu)先在當(dāng)前作用域中尋找該變量,如果有則使用,如果沒有則繼續(xù)去上一級作用域中尋找,以此類推,直到查找完全局作用域,如果依然沒有找到,則會拋出異常。函數(shù)2作用域(函數(shù)2在函數(shù)1內(nèi)部定義)函數(shù)1作用域全局作用域由內(nèi)向外global那么有沒有辦法修改局部變量的作用域區(qū)間,使其在全局范圍內(nèi)可用呢?global:把函數(shù)內(nèi)的局部變量提升為全局變量,這樣函數(shù)外部也可以調(diào)用這個變量。代碼a=5#自定義函數(shù)deffn():
globalcb=8c=12print(a)#在函數(shù)內(nèi)部print(a)運(yùn)行成功print(b)#調(diào)用自定義函數(shù)fn()print(c)#在函數(shù)外部print(c)運(yùn)行成功輸出結(jié)果:5812課堂小結(jié)函數(shù)的參數(shù):位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)可變參數(shù):
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國ODF箱體數(shù)據(jù)監(jiān)測報告
- 2025年中國GF脲醛樹脂數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國食品廣口瓶市場分析及競爭策略研究報告
- 2025至2030年中國選色輪市場分析及競爭策略研究報告
- 2025至2030年中國蒸發(fā)箱外殼市場分析及競爭策略研究報告
- 2025至2030年中國美發(fā)工具包市場分析及競爭策略研究報告
- 2025至2030年中國磁力包式國際象棋五子棋兩用市場分析及競爭策略研究報告
- 2025至2030年中國電壓輸出操縱桿市場分析及競爭策略研究報告
- 2025至2030年中國炭疽福美可濕性粉市場分析及競爭策略研究報告
- 2025至2030年中國極壓機(jī)械油市場分析及競爭策略研究報告
- CSR法律法規(guī)及其他要求清單(RBA)2024.3
- 二年級100以內(nèi)加減法混合運(yùn)算題庫
- 設(shè)備預(yù)驗收報告
- 國家開放大學(xué)《鋼結(jié)構(gòu)(本)》期末復(fù)習(xí)指導(dǎo)參考答案
- 小學(xué)美術(shù)奇怪的夢課件
- 頭頸部腫瘤放療中危及器官與正常組織勾畫課件
- 廣州市退休人員個人情況登記表
- 切格瓦拉完整
- 智能門鎖采購?fù)稑?biāo)方案
- 課程設(shè)計DLP4-13型鍋爐中硫煙煤煙氣袋式除塵濕式脫硫系統(tǒng)設(shè)計
- 中學(xué)生如何正確交友主題班會
評論
0/150
提交評論