版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
函數(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ù)的名字和位置確定下來,對(duì)于函數(shù)調(diào)用者而言,只需要了解如何傳遞正確的參數(shù),以及函數(shù)將返回什么樣的值就夠了,函數(shù)內(nèi)部的復(fù)雜邏輯被封裝起來,調(diào)用者無需了解。Python函數(shù)參數(shù)類型:位置參數(shù):調(diào)用函數(shù)時(shí),實(shí)參默認(rèn)按位置順序傳遞(從左到右)默認(rèn)參數(shù):定義形參時(shí),可以為形參指定默認(rèn)值可變參數(shù):傳入的參數(shù)個(gè)數(shù)可變命名關(guān)鍵字參數(shù):限制某些參數(shù)必須使用參數(shù)名傳遞函數(shù)體輸入(參數(shù))輸出(返回值)位置參數(shù)位置參數(shù)(必選參數(shù)):調(diào)用函數(shù)時(shí),實(shí)參默認(rèn)按位置順序傳遞,第一個(gè)實(shí)參賦值給第一個(gè)形參,第二個(gè)實(shí)參賦值給第二個(gè)形參,以此類推,傳遞的實(shí)參個(gè)數(shù)必須與形參一致。代碼#自定義函數(shù):位置參數(shù)deff1(a,b):returna+b#調(diào)用自定義函數(shù)print(f1(1,2))輸出結(jié)果:3默認(rèn)參數(shù)默認(rèn)參數(shù)(缺省參數(shù)):定義形參時(shí),可以為形參指定默認(rèn)值。調(diào)用函數(shù)時(shí)這些參數(shù)是可選的,如果沒有傳入?yún)?shù)值,則被認(rèn)為是默認(rèn)值,如果用戶傳遞了參數(shù),則默認(rèn)值沒有任何作用。定義參數(shù)時(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ù)常用值設(shè)置為默認(rèn)值,在簡(jiǎn)單調(diào)用時(shí),可以僅傳入位置參數(shù),需要復(fù)雜調(diào)用時(shí)又可以傳入更多參數(shù),無論簡(jiǎn)單調(diào)用還是復(fù)雜調(diào)用均只需定義一個(gè)函數(shù)。以參數(shù)名傳遞參數(shù)在調(diào)用函數(shù)時(shí),可以直接根據(jù)參數(shù)名去傳遞參數(shù)。代碼#自定義函數(shù):以參數(shù)名傳遞參數(shù)deff3(a,b=1):returna+b#調(diào)用自定義函數(shù)print(f3(a=1,b=4))輸出結(jié)果:5注意不允許對(duì)同一個(gè)形參進(jìn)行多次賦值;既可以為位置參數(shù)賦值,也可以為默認(rèn)參數(shù)賦值??勺儏?shù)可變參數(shù):傳入的參數(shù)個(gè)數(shù)可變,可以接收任意個(gè)參數(shù)(包含0個(gè)),在參數(shù)前加*即表示可變參數(shù),根據(jù)*個(gè)數(shù)可分為以下兩種:*形參:可變位置參數(shù)(*args),在形參前加*,調(diào)用時(shí),多出的位置參數(shù)將會(huì)被接收形成一個(gè)元組;**形參:可變關(guān)鍵字參數(shù)(**kwargs),在形參前加**,調(diào)用時(shí),多出的關(guān)鍵字參數(shù)將會(huì)被接收形成一個(gè)字典??勺儏?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ù)要求:自定義一個(gè)函數(shù),對(duì)任意多個(gè)數(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í)不需添加分隔符。代碼#自定義函數(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)用,那么,對(duì)變量的調(diào)用有什么限制呢?變量的作用域變量作用域:指變量生效的區(qū)域,在不同作用域內(nèi)同名變量之間互不影響。在Python中變量作用域分為局部作用域和全局作用域。局部(函數(shù))作用域:在函數(shù)調(diào)用時(shí)創(chuàng)建,在調(diào)用結(jié)束時(shí)銷毀每調(diào)用一次就會(huì)產(chǎn)生一個(gè)新的函數(shù)作用域在函數(shù)作用域中定義的變量,都是局部變量(包含形參),只能在函數(shù)內(nèi)部被訪問全局作用域:在程序執(zhí)行時(shí)創(chuàng)建,在程序執(zhí)行結(jié)束時(shí)銷毀所有局部作用域以外的區(qū)域都是全局作用域在全局作用域中定義的變量,都屬于全局變量,全局變量可以在程序的任意位置被訪問變量的查找變量查找:使用變量時(shí),優(yōu)先在當(dāng)前作用域中尋找該變量,如果有則使用,如果沒有則繼續(xù)去上一級(jí)作用域中尋找,以此類推,直到查找完全局作用域,如果依然沒有找到,則會(huì)拋出異常。函數(shù)2作用域(函數(shù)2在函數(shù)1內(nèi)部定義)函數(shù)1作用域全局作用域由內(nèi)向外global那么有沒有辦法修改局部變量的作用域區(qū)間,使其在全局范圍內(nèi)可用呢?global:把函數(shù)內(nèi)的局部變量提升為全局變量,這樣函數(shù)外部也可以調(diào)用這個(gè)變量。代碼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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年連鎖加盟店合作協(xié)議標(biāo)準(zhǔn)版版B版
- 汪汪隊(duì)立大功征文
- 2024年車輛租賃協(xié)議標(biāo)準(zhǔn)格式范文版B版
- 財(cái)務(wù)管理課程設(shè)計(jì)日志
- 2024版建筑設(shè)計(jì)服務(wù)年協(xié)議模板版
- 兒童英語(yǔ)在線教育合同
- 環(huán)保設(shè)備制造銷售合作協(xié)議
- 產(chǎn)品推廣活動(dòng)方案設(shè)計(jì)
- 航天科普研學(xué)課程設(shè)計(jì)
- 2024版全新轉(zhuǎn)包協(xié)議范本下載
- 期末復(fù)習(xí)試題 (試卷)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2024年中國(guó)工業(yè)級(jí)硝酸銨市場(chǎng)調(diào)查研究報(bào)告
- 鄉(xiāng)村振興課件教學(xué)課件
- 2024年度危廢物品轉(zhuǎn)運(yùn)服務(wù)協(xié)議版
- 2023年輔警招聘公安基礎(chǔ)知識(shí)必刷題庫(kù)及答案
- 全過程造價(jià)咨詢項(xiàng)目保密及廉政執(zhí)業(yè)措施
- 《機(jī)加工操作員績(jī)效考核方案》-企業(yè)管理
- 光是怎樣傳播的說課稿
- 勞動(dòng)技能實(shí)操指導(dǎo)(勞動(dòng)教育)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- nba球星喬丹課件
- 離婚協(xié)議書模板可打印(2024版)
評(píng)論
0/150
提交評(píng)論