




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高階函數(shù)課前回顧函數(shù)的參數(shù):位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)可變參數(shù):可變位置參數(shù)(*args)接收元組、可變關(guān)鍵字參數(shù)(**kwargs)接收字典命名關(guān)鍵字參數(shù):在沒(méi)有可變位置參數(shù)時(shí),需要使用分隔符*參數(shù)組合順序:位置參數(shù)、默認(rèn)參數(shù)、可變位置參數(shù)、命名關(guān)鍵字參數(shù)、可變關(guān)鍵字參數(shù)變量作用域:局部作用域、全局作用域global:把函數(shù)內(nèi)的局部變量提升為全局變量目錄01020304什么是高階函數(shù)filter函數(shù)map函數(shù)reduce函數(shù)01什么是高階函數(shù)什么是高階函數(shù)高階函數(shù):可以調(diào)用其他函數(shù)作為參數(shù)的函數(shù)。代碼#將print函數(shù)賦值給變量ff=print#變量f等同于print函數(shù)的功能和性質(zhì),相當(dāng)于給print函數(shù)取了別名f('貨幣資金')#輸出結(jié)果:貨幣資金代碼#查看變量f的類(lèi)型print(type(f))#輸出結(jié)果:builtin_function_or_method(內(nèi)置函數(shù))變量可以指向函數(shù),函數(shù)的參數(shù)能夠接收變量,那么,一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)被稱(chēng)為高階函數(shù)。什么是高階函數(shù)代碼#自定義函數(shù)deffunc(a,function):returnfunction(a)#將print函數(shù)作為參數(shù)傳遞,返回-1func(-1,print)#將abs函數(shù)作為參數(shù)傳遞,返回1print(func(-1,abs))常用高階函數(shù)包括filter()函數(shù)、map()函數(shù)、reduce()函數(shù),均用于可迭代對(duì)象;高階函數(shù)通常與匿名函數(shù)(lambda表達(dá)式)聯(lián)合使用。02filter函數(shù)
filter函數(shù)filter函數(shù):用于過(guò)濾不符合條件的元素;語(yǔ)法:filter(function,可迭代對(duì)象)→返回一個(gè)可迭代對(duì)象該函數(shù)接收兩個(gè)參數(shù),第一個(gè)為函數(shù),第二個(gè)為可迭代對(duì)象,對(duì)可迭代對(duì)象中的每個(gè)元素調(diào)用function函數(shù),最后返回調(diào)用結(jié)果為T(mén)rue的元素。代碼#篩選出所有偶數(shù)num=[2,5,8,12,15]#filter函數(shù)與匿名函數(shù)result=filter(lambdax:x%2==0,num)#list()將返回的可迭代對(duì)象轉(zhuǎn)為列表print(list(result))filter函數(shù)說(shuō)明:甲公司1-4月收入分別為12萬(wàn)元、15.5萬(wàn)元、14萬(wàn)元、17萬(wàn)元。要求:使用filter函數(shù)篩選出收入額在15萬(wàn)元以上的所有月份。示例1代碼#創(chuàng)建一個(gè)字典income接收1-4月收入income={'1月':120000,'2月':155000,'3月':140000,'4月':170000}#filter函數(shù)(默認(rèn)使用鍵值來(lái)篩選)result=filter(lambdax:income[x]>150000,income)#list()將返回的可迭代對(duì)象轉(zhuǎn)為列表print(list(result))輸出結(jié)果:['2月','4月']03map函數(shù)map函數(shù)map函數(shù):根據(jù)提供的函數(shù)對(duì)指定序列做映射;語(yǔ)法:map(function,可迭代對(duì)象1,可迭代對(duì)象2,…)→返回一個(gè)可迭代對(duì)象該函數(shù)第一個(gè)參數(shù)是一個(gè)函數(shù),剩下的參數(shù)是一個(gè)或多個(gè)可迭代對(duì)象,以可迭代對(duì)象中的每一個(gè)元素調(diào)用function函數(shù),返回的可迭代對(duì)象包含每次調(diào)用function函數(shù)的返回值。代碼num=[2,5,8,12,15]#map函數(shù)與匿名函數(shù):列表中每個(gè)元素均乘10result=map(lambdax:x*10,num)#list()將返回的可迭代對(duì)象轉(zhuǎn)為列表print(list(result))#如果傳入多個(gè)可迭代對(duì)象,要求包含的元素個(gè)數(shù)相同,若個(gè)數(shù)不同,多出的元素不會(huì)調(diào)用函數(shù)。map函數(shù)說(shuō)明:企業(yè)所得稅法規(guī)定,企業(yè)發(fā)生的符合條件的廣告費(fèi)支出,不超過(guò)當(dāng)年銷(xiāo)售收入15%的部分,準(zhǔn)予當(dāng)年扣除,甲、乙、丙、丁四家公司本年度銷(xiāo)售收入及廣告費(fèi)分別如下:income=[2450000,2880000,3240000,3540000]expense=[300000,450000,480000,540000]要求:使用map函數(shù)計(jì)算各公司本年準(zhǔn)予稅前扣除的廣告費(fèi)額度。示例2代碼#創(chuàng)建列表接收收入和廣告費(fèi)金額income=[2450000,2880000,3240000,3540000]expense=[300000,450000,480000,540000]#map函數(shù)與匿名函數(shù):result=map(lambdax,y:yifx*0.15>yelsex*0.15,income,expense)#list()將返回的可迭代對(duì)象轉(zhuǎn)為列表print('廣告費(fèi)稅前扣除額為:',list(result))輸出結(jié)果:廣告費(fèi)稅前扣除額為:[300000,432000.0,480000,531000.0]04reduce函數(shù)reduce函數(shù)reduce函數(shù):對(duì)參數(shù)可迭代對(duì)象中的元素進(jìn)行累積,通常用于累加、累乘;語(yǔ)法:reduce(function,可迭代對(duì)象,初始值)→返回計(jì)算結(jié)果reduce依次從可迭代對(duì)象中取一個(gè)元素,和上一次調(diào)用function的結(jié)果做參數(shù)再次調(diào)用function。function、可迭代對(duì)象:必選參數(shù);初始值:為可選參數(shù),若提供初始值參數(shù),function函數(shù)先對(duì)初始值和可迭代對(duì)象中的第1個(gè)元素進(jìn)行操作,得到的結(jié)果再與第2個(gè)元素用function函數(shù)運(yùn)算,最后得到一個(gè)結(jié)果。注意python3中reduce在內(nèi)置模塊functools內(nèi)部,所以需要先引入functools模塊。reduce函數(shù)代碼#引入functools模塊importfunctools#調(diào)用reduce計(jì)算1-5累加num=[1,2,3,4,5]result=functools.reduce(lambdax,y:x+y,num)print(result)輸出結(jié)果:15[1,2,3,4,5]reduce(func,num)lambdax,y:x+y第1次計(jì)算:1+2=3第2次計(jì)算:3+3=6第3次計(jì)算:6+4=10第4次計(jì)算:10+5=15reduce函數(shù)說(shuō)明:甲公司1-4月收入分別為12萬(wàn)元、15.5萬(wàn)元、14萬(wàn)元、17萬(wàn)元。要求:使用reduce函數(shù)計(jì)算1-4月收入總額。示例3代碼#引入functools模塊importfunctools#創(chuàng)建列表存儲(chǔ)收入值income=[120000,155000,140000,170000]#reduce函數(shù)result=functools.reduce(lambdax,y:x+y,income)#打印計(jì)算結(jié)果print(result)輸出結(jié)果:585000課堂小結(jié)高階函數(shù):一個(gè)函數(shù)可以接收另一個(gè)函數(shù)作為參數(shù)filter()
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息系統(tǒng)監(jiān)理師考試準(zhǔn)備的時(shí)間規(guī)劃試題及答案
- 公路路基處理技術(shù)試題及答案
- 公路工程中的勞務(wù)用工管理試題及答案
- 深度分析行政組織理論趨勢(shì)試題及答案
- 學(xué)習(xí)路上的幫助三級(jí)數(shù)據(jù)庫(kù)試題及答案
- 理解數(shù)據(jù)標(biāo)準(zhǔn)化在數(shù)據(jù)庫(kù)中的必要性試題及答案
- 金屬絲繩在隧道工程中的應(yīng)用與創(chuàng)新考核試卷
- 嵌入式編程技能測(cè)試試題及答案
- 計(jì)算機(jī)租賃業(yè)務(wù)中的風(fēng)險(xiǎn)管理框架優(yōu)化與實(shí)施案例考核試卷
- 行政組織的數(shù)字化轉(zhuǎn)型與挑戰(zhàn)試題及答案
- DB36-T 1983-2024 安寧療護(hù)服務(wù)規(guī)范
- 髓核微生物組與椎間盤(pán)退變的因果關(guān)系
- 中國(guó)海油安全知識(shí)手冊(cè)(2023版)-純文字版
- 2024-2025學(xué)年全國(guó)中學(xué)生天文知識(shí)競(jìng)賽考試題庫(kù)(含答案)
- 心衰健康宣教課件
- 馬工程《公共財(cái)政概論》課后習(xí)題庫(kù)(含)參考答案(可做期末復(fù)習(xí)和試卷)
- DB36T 1968-2024 公路路基工程利用鋰渣技術(shù)規(guī)范(試行)
- 醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則自查自糾報(bào)告
- (正式版)JC∕T 60021-2024 石膏基自流平砂漿應(yīng)用技術(shù)規(guī)程
- 日雜店購(gòu)銷(xiāo)合同清單
- 非遺文化傳承課件
評(píng)論
0/150
提交評(píng)論