版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
專題九函數(shù)[考綱要求]1.理解函數(shù)的概念;2.掌握提取代碼并建立函數(shù)的方法。3.認(rèn)識(shí)函數(shù)的定義格式;4.掌握函數(shù)的定義過程5.掌握函數(shù)的調(diào)用及參數(shù)傳遞;6.理解不同的參數(shù)分類對(duì)應(yīng)不同的調(diào)用方式。7.理解變量作用域的概念8.了解局部變量和全局變量的差別9.學(xué)會(huì)定義局部變量和全局變量10.了解模塊的導(dǎo)入11.掌握遞歸函數(shù)的應(yīng)用12.了解高階函數(shù)的簡單使用[課時(shí)安排]2課時(shí)[知識(shí)梳理]函數(shù)的概念函數(shù)是指通過專門的代碼組織,用來實(shí)現(xiàn)特定功能的代碼段,它具有相對(duì)獨(dú)立性,可供其他代碼重復(fù)調(diào)用。前面其實(shí)已經(jīng)接觸過很多函數(shù)了,比如print函數(shù),獲取列表長度的len函數(shù),用于刪除對(duì)象的del函數(shù)等等。從代碼角度來看,借助函數(shù)使代碼邏輯可以得到優(yōu)化(不能提升代碼從程序員角度來看,借助函數(shù)可以提高代碼def函數(shù)名([形式參數(shù)1,形式參數(shù)2…]):函數(shù)體數(shù)(簡稱形參),形參是可選的,形參必須放在圓括號(hào)內(nèi),形參之間用逗號(hào)分隔。函數(shù)體向右縮進(jìn)(一般空4個(gè)空格),函數(shù)體是程序的處理;在函數(shù)體中可以使用return[表達(dá)式]來返回函數(shù)的值,如果未使用return語句,系統(tǒng)則默調(diào)用函數(shù)時(shí),輸入函數(shù)名并在后面的圓括號(hào)內(nèi)傳入實(shí)際參數(shù)(簡稱實(shí)參),多個(gè)參數(shù)之間用函數(shù)名()【示例】判斷列表[16,27,53,78]中哪些數(shù)能被4整除,哪些數(shù)能被6整除。defzc(n,m):ifn%m==0:print(f"{n}可以被{m}整長參數(shù)(元組類型和字典類型的不定長參數(shù))在調(diào)用函數(shù)時(shí),傳遞的參數(shù)必須與函數(shù)定義的參數(shù)一一對(duì)應(yīng)(參數(shù)個(gè)數(shù)一致,位置一致)標(biāo)準(zhǔn)自定義函數(shù)中,函數(shù)調(diào)用時(shí),參數(shù)默認(rèn)采用按照位置順序的方式deftest(name,age):print(f"我的名字{name},我的年紀(jì){age}")test("張三",18)#我的名字張三,我的年紀(jì)18deftest(name,age,heigtest(age=18,name="張三",180)#SyntaxError:positionalargumentfollkeywordargument若考題中涉及到“無須考慮參數(shù)位置”等類型的提示語則指得就是關(guān)鍵字參數(shù)defhello(name,age=18):print(f"我的名字{name},我的年紀(jì){age}")hello("張三")#我的名字張三,我的年紀(jì)18hello("張三",19)#我的名字張三,我的年紀(jì)19長參數(shù)。元組不定長參數(shù)就是將參數(shù)封裝為元組,字典不定長參數(shù)deftest(name,age,*hobbys):print(f"我的名字{name},我的年紀(jì){age}")ifhobbys:test("張三",18,"唱歌","跳舞","畫畫")字典不定長參數(shù)**kwargsdeftest(name,age,*hobbys,**info):print(f"我的名字{name},我的年紀(jì){age}")ifhobbys:print()ifinfo:test("張三",18,"唱歌","跳舞","畫畫",height=180,weight=75)注意:不定長參數(shù)必須放在位置參數(shù)的最右端??偨Y(jié):關(guān)鍵字參數(shù)、默認(rèn)參數(shù)、不定長參數(shù)必須放在位置參數(shù)的最右端函數(shù)參數(shù)的調(diào)用方式形參和實(shí)參定義函數(shù)時(shí)所指定的形參并不是具有值的變量,它所起的作用類似于占位符,只有在調(diào)用函數(shù)時(shí),調(diào)用函數(shù)將實(shí)參的值傳遞給被調(diào)用函數(shù)的形參,形參才具有確定的值。要正確地傳遞參數(shù),一般要求形參和實(shí)參數(shù)目要相等,而且數(shù)據(jù)類型要保持兼容。局部變量和全局變量局部變量:在一個(gè)函數(shù)體或語句塊內(nèi)部定義的變量稱為局部變量。局部變量的作用域就是定義它的函數(shù)體或語句塊,只能在這個(gè)作用域內(nèi)部對(duì)局部變量進(jìn)行存取操作,而不能在這個(gè)作用域外部對(duì)局部變量進(jìn)行存取操作。對(duì)于帶參數(shù)的函數(shù)而言,其形參的作用域就是函數(shù)體。如果在函數(shù)外部引用函數(shù)的形參或函數(shù)體中定義的局部變量,則會(huì)出現(xiàn)NameError的錯(cuò)誤全局變量:在所有函數(shù)外部定義的變量稱為全局變量,它可以在當(dāng)前模塊范圍中被所有函數(shù)引用。如果要在函數(shù)內(nèi)部修改全局變量的值,則應(yīng)使用global關(guān)鍵字對(duì)變量聲明。deftest():使用關(guān)鍵字globaldeftest():函數(shù)參數(shù)的調(diào)用方式在python中,如果參數(shù)屬于可變對(duì)象,則在函數(shù)內(nèi)部對(duì)形參變量的修改會(huì)影響到函數(shù)外部接下來我們探討一下什么是引用傳遞方式和值傳遞方式?1)值傳遞方式對(duì)被調(diào)用函數(shù)的形參變量重新分配存儲(chǔ)空間,用于存放傳遞過來的實(shí)參變量而不會(huì)對(duì)調(diào)用函數(shù)中的實(shí)參變量產(chǎn)生影響。傳入的參數(shù)是不可變數(shù)據(jù)類型。2)引用傳遞方式對(duì)被調(diào)用函數(shù)的形參變量分配存儲(chǔ)空間,用于存儲(chǔ)由調(diào)用函數(shù)傳遞過來的1.不可變數(shù)據(jù)類型的數(shù)據(jù)其實(shí)是復(fù)制了值再傳deftest(a):據(jù)deftest1(x):可變數(shù)據(jù)類型作為默認(rèn)參數(shù)的值時(shí),調(diào)用函數(shù)時(shí)defdemo(newwitem,old_list=[]):defmain():函數(shù)模塊的調(diào)用用戶自定義模塊就是用戶自己編寫的Python1導(dǎo)入模塊方式1:import模塊名1[as別名1],模塊名2[as別名2],…2導(dǎo)入模塊方式2:從模塊里面導(dǎo)入函數(shù)1,函數(shù)2,…from模塊名import函數(shù)1[,as別名1],函數(shù)2[,as別名1],...4從模塊里面導(dǎo)入所有函數(shù)from模塊名import*將tkinter模塊里面的所有函數(shù)導(dǎo)入從tkinter模塊里面導(dǎo)入ceil,floor函數(shù)frommathimportclambda函數(shù)(匿名函數(shù))什么是匿名函數(shù):匿名函數(shù)是指沒有名稱的函數(shù),它只能包含一個(gè)表達(dá)式,而不能包含其他語句,該表達(dá)式的值就是函數(shù)的返回值。什么時(shí)候使用匿名函數(shù):如果某項(xiàng)計(jì)算功能只需要臨時(shí)使用一次而不需要在其他地方重復(fù)使用,則可以考慮通過定義匿名函數(shù)來實(shí)現(xiàn)這項(xiàng)功能。1.匿名函數(shù)的定義匿名函數(shù)通過關(guān)鍵字lambda來定義,因此也稱為lambda函數(shù)其語法格式如:lambda參數(shù)參數(shù)列表中的參數(shù)之間用逗號(hào)分隔,冒號(hào)后面的表達(dá)式用于確定匿名函數(shù)的返回值,表達(dá)式的值就是匿名函數(shù)的返回值。2.匿名函數(shù)的調(diào)用在程序中可以將匿名函數(shù)賦值給一個(gè)變量,然后通過該變量來調(diào)用匿名函數(shù)。例如:8與標(biāo)準(zhǔn)函數(shù)類似,使用匿名函數(shù)時(shí)可以使用默認(rèn)值參數(shù)和關(guān)鍵字參數(shù),例如:3遞歸函數(shù)的特點(diǎn):必須有一個(gè)明確的遞歸結(jié)束條件(基例),每當(dāng)進(jìn)規(guī)模相比上次遞歸都應(yīng)有所減少;相比兩次重復(fù)之間有緊密的聯(lián)遞歸函數(shù)的要求:至少有一個(gè)基例(遞歸終止條件)【例1】鍵盤輸入n,使用遞歸函數(shù)計(jì)算n以內(nèi)的累加和n=eval(input("請(qǐng)輸入n:"))defgetSum(n):ifn==0:【例2】使用遞歸函數(shù)打印出前20項(xiàng)斐波那契數(shù)列,每個(gè)數(shù)字之間空格隔開。deff(n):ifn<=2:高階函數(shù)map(映射)函數(shù)是Python中常用的高級(jí)函數(shù)之一,其作用是對(duì)一個(gè)序列中的每個(gè)元素進(jìn)行sequence是序列【例1】將lst=[1,2,3,4,5]里面的每個(gè)元素轉(zhuǎn)為字符類型【例2】將lst=[1,2,3,4,5]里面的每個(gè)元素改為該數(shù)字的平方zip()函數(shù)(’拉鏈’函數(shù))用于將可迭代對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回zip對(duì)象。我們來看一下zip函數(shù)的案例:b=[4,5,6]print(list(zip(a,b)))#[(1,4),(2,5),(3,6)]print(tuple(zip(a,b)))#((1,4),(2,5)print(dict(zip(a,b)))print(set(zip(a,b)))#{(2print(list(zip(a,b)))#[(1,4),(defis_even(n):oldLst=[1,2,3,4,5,6,7,8,[限時(shí)練習(xí)]1.下面關(guān)于遞歸函數(shù)的描述,錯(cuò)誤的是()。D.代碼簡潔但效率較低【解析】遞歸層次越深,函數(shù)調(diào)用棧的開銷越大,執(zhí)行效率反而降低。2.可變數(shù)據(jù)類型(如列表)作為函數(shù)的默認(rèn)參數(shù),多次調(diào)用時(shí)可能出現(xiàn)的問題是()。A.每次調(diào)用都會(huì)重新初始化默認(rèn)參數(shù)B.默認(rèn)參數(shù)會(huì)共享同一內(nèi)存地址,導(dǎo)致數(shù)據(jù)累積C.函數(shù)無法正確接收參數(shù)D.語法錯(cuò)誤【解析】默認(rèn)參數(shù)在函數(shù)定義時(shí)僅初始化一次,后續(xù)調(diào)用會(huì)共享同一可變對(duì)象。3.關(guān)于全局變量和局部變量,下面說法正確的是()。A.函數(shù)內(nèi)部可以直接修改全局變量B.局部變量作用域僅限于函數(shù)內(nèi)部C.全局變量必須用global關(guān)鍵字聲明后才能使用D.函數(shù)形參屬于全局變量【解析】函數(shù)內(nèi)部修改全局變量需用global聲明,但直接引用無需聲明。4.以下代碼的輸出結(jié)果是():deftest():D.報(bào)錯(cuò)5.下列關(guān)于函數(shù)的說法中,錯(cuò)誤的是()。A.自定義函數(shù)時(shí),函數(shù)參數(shù)和返回值是可選的C.一個(gè)函數(shù)中可以有多個(gè)return語句D.函數(shù)定義時(shí),參數(shù)順序無關(guān)緊要【解析】函數(shù)定義時(shí),位置參數(shù)的順序必須一一對(duì)應(yīng)6.下列做法不會(huì)造成程序錯(cuò)誤的是()。A.函數(shù)沒有寫returnB.函數(shù)沒有參數(shù)D.函數(shù)有多個(gè)return【解析】函數(shù)定義和調(diào)用時(shí),圓括號(hào)都不能省略。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人遺愿實(shí)施與尊重制度
- 上班時(shí)間管理制度
- 企業(yè)內(nèi)部保密知識(shí)培訓(xùn)制度
- 老年終末期患者失禁相關(guān)性皮炎的分級(jí)護(hù)理方案
- 重冶濕法冶煉工安全應(yīng)急水平考核試卷含答案
- 堿減量操作工安全生產(chǎn)能力強(qiáng)化考核試卷含答案
- 多晶硅制取工操作規(guī)范評(píng)優(yōu)考核試卷含答案
- 電子玻璃制品研磨拋光工風(fēng)險(xiǎn)評(píng)估與管理測試考核試卷含答案
- 甘油水處理工7S考核試卷含答案
- 梳理水刺非織造布制作工班組協(xié)作評(píng)優(yōu)考核試卷含答案
- 小學(xué)文言文重點(diǎn)字詞解釋梳理
- 交通船閘大修工程質(zhì)量檢驗(yàn)規(guī)范
- GB/T 2879-2024液壓傳動(dòng)液壓缸往復(fù)運(yùn)動(dòng)活塞和活塞桿單向密封圈溝槽的尺寸和公差
- 福建省廈門市2023-2024學(xué)年高二上學(xué)期期末考試英語試題(解析版)
- 高脂血癥性急性胰腺炎教學(xué)查房課件
- 廈門高容納米新材料科技有限公司高容量電池負(fù)極材料項(xiàng)目環(huán)境影響報(bào)告
- 部編版語文八年級(jí)下冊(cè)第6課《被壓扁的沙子》一等獎(jiǎng)創(chuàng)新教案
- 當(dāng)代藝術(shù)賞析課件
- 重慶市因工死亡職工供養(yǎng)親屬撫恤金申報(bào)表
- GB/T 12789.1-1991核反應(yīng)堆儀表準(zhǔn)則第一部分:一般原則
- GB/T 12719-2021礦區(qū)水文地質(zhì)工程地質(zhì)勘查規(guī)范
評(píng)論
0/150
提交評(píng)論