財(cái)務(wù)大數(shù)據(jù)-Python基礎(chǔ) 課件 1.10高階函數(shù)_第1頁(yè)
財(cái)務(wù)大數(shù)據(jù)-Python基礎(chǔ) 課件 1.10高階函數(shù)_第2頁(yè)
財(cái)務(wù)大數(shù)據(jù)-Python基礎(chǔ) 課件 1.10高階函數(shù)_第3頁(yè)
財(cái)務(wù)大數(shù)據(jù)-Python基礎(chǔ) 課件 1.10高階函數(shù)_第4頁(yè)
財(cái)務(wù)大數(shù)據(jù)-Python基礎(chǔ) 課件 1.10高階函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論