財務大數(shù)據(jù)-Python基礎 課件 1.8函數(shù)_第1頁
財務大數(shù)據(jù)-Python基礎 課件 1.8函數(shù)_第2頁
財務大數(shù)據(jù)-Python基礎 課件 1.8函數(shù)_第3頁
財務大數(shù)據(jù)-Python基礎 課件 1.8函數(shù)_第4頁
財務大數(shù)據(jù)-Python基礎 課件 1.8函數(shù)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

函數(shù)課前回顧while循環(huán):通過判斷數(shù)值是否滿足來確定循環(huán);for循環(huán):通過對可迭代對象進行遍歷來實現(xiàn)循環(huán),range()、zip()、列表推導式;嵌套循環(huán):循環(huán)語句中可以嵌套另一個循環(huán),if、while、for可以隨意組合;跳轉(zhuǎn)語句:break退出循環(huán),continue跳轉(zhuǎn)到下次循環(huán),break和continue只能用于循環(huán)之中。函數(shù)函數(shù):是指組織好、可重復使用的,用來實現(xiàn)單一或相關聯(lián)功能的代碼段。函數(shù)作用:實現(xiàn)代碼的重復使用,實現(xiàn)代碼的一致性(一致性是指只要修改函數(shù)的代碼,所有調(diào)用該函數(shù)的地方都能得到體現(xiàn))。Python中的函數(shù)可以分為如下幾類:內(nèi)置函數(shù):由Python提供,可以直接拿來使用的函數(shù),如:input()、print()等等;自定義函數(shù):用戶根據(jù)需求自己定義的函數(shù);匿名函數(shù):沒有顯式定義的函數(shù),一般只有一行表達式,只能使用一次。目錄010203內(nèi)置函數(shù)自定義函數(shù)匿名函數(shù)01內(nèi)置函數(shù)

內(nèi)置函數(shù)Python提供了69個內(nèi)置函數(shù),可通過查詢Python的官方文檔了解內(nèi)置函數(shù)的功能;Python官方網(wǎng)站:/zh-cn/3.7/library/functions.html注意標識符命名時不要使用內(nèi)置函數(shù)名,雖然使用內(nèi)置函數(shù)名命名時Python不會報錯,但是會導致同名的內(nèi)置函數(shù)被覆蓋,從而無法使用。02自定義函數(shù)

創(chuàng)造屬于你的函數(shù):自定義函數(shù)如果想實現(xiàn)的功能內(nèi)置函數(shù)無法完成,該如何處理呢?在Python中,用戶可以自己創(chuàng)建函數(shù),這類用戶自己創(chuàng)建的函數(shù)稱為自定義函數(shù)。自定義函數(shù):是指用一些符號代替變量賦值,等到使用這個算法的時候再把具體的變量金額填充進去,將原先適用于一種情況的算法改造成一個通用的算法。自定義函數(shù)語法:def函數(shù)名(形參):#形參根據(jù)需求設置,可有可無,多個形參用逗號隔開<代碼塊>#注意冒號和語句縮進

return表達式#return函數(shù)返回值關鍵字,函數(shù)執(zhí)行完畢后給調(diào)用者的結(jié)果稱為函數(shù)的“返回值”,沒有

return時返回結(jié)果為None函數(shù)名(實參)#調(diào)用函數(shù),有參函數(shù)傳遞實參,實參與形參一一對應for循環(huán)說明:甲公司采用雙倍余額遞減法對固定資產(chǎn)計提折舊,現(xiàn)有一固定資產(chǎn)原值為100000元,預計使用年限為10年,凈殘值率5%。要求:采用for循環(huán)計算該固定資產(chǎn)年折舊額。代碼年初固定資產(chǎn)凈值=100000#第一年年初固定資產(chǎn)凈值=固定資產(chǎn)原值result=[]#創(chuàng)建空列表存儲年折舊額foriinrange(8):年折舊額=round(年初固定資產(chǎn)凈值*(2/10),2)#年折舊率=2/10result.append(年折舊額)年初固定資產(chǎn)凈值-=年折舊額else:年折舊額=round((年初固定資產(chǎn)凈值-100000*0.05)/2,2)result.append(年折舊額)result.append(round(年初固定資產(chǎn)凈值-100000*0.05-年折舊額,2))print("每年折舊額依次為:",result)自定義函數(shù)說明:生產(chǎn)設備A:固定資產(chǎn)原值:1200000元、折舊年限10年、凈殘值5%;

辦公設備B:固定資產(chǎn)原值:240000元、折舊年限5年、凈殘值5%;要求:自定義函數(shù)計算固定資產(chǎn)年折舊(采用雙倍余額遞減法)。示例1代碼#自定義函數(shù):def折舊計算(原值,折舊年限,凈殘值率):年初固定資產(chǎn)凈值=原值#第一年年初固定資產(chǎn)凈值=固定資產(chǎn)原值result=[]#創(chuàng)建空列表存儲年折舊額foriinrange(折舊年限-2):年折舊額=round(年初固定資產(chǎn)凈值*(2/折舊年限),2)result.append(年折舊額)年初固定資產(chǎn)凈值-=年折舊額else:年折舊額=round((年初固定資產(chǎn)凈值-原值*凈殘值率)/2,2)result.append(年折舊額)result.append(round(年初固定資產(chǎn)凈值-原值*凈殘值率-年折舊額,2))print("每年折舊額依次為:",result)自定義函數(shù)說明:生產(chǎn)設備A:固定資產(chǎn)原值:1200000元、折舊年限10年、凈殘值5%;

辦公設備B:固定資產(chǎn)原值:240000元、折舊年限5年、凈殘值5%;要求:自定義函數(shù)計算固定資產(chǎn)年折舊(采用雙倍余額遞減法)。示例1代碼#調(diào)用自定義函數(shù)折舊計算(1200000,10,0.05)折舊計算(240000,5,0.05)輸出結(jié)果:每年折舊額依次為:[240000.0,192000.0,153600.0,122880.0,98304.0,78643.2,62914.56,50331.65,70663.29,70663.3]每年折舊額依次為:[96000.0,57600.0,34560.0,19920.0,19920.0]while循環(huán)說明:20×1年12月31日,甲公司經(jīng)批準發(fā)行5年期一次還本、分期付息的公司債券10,000,000元,債券利息在每年12月31日支付,票面年利率為6%,債券發(fā)行時市場利率為5%,債券實際發(fā)行總價為10,432,700元(即20×1年12月31日的攤余成本),公司采用實際利率法和攤余成本計算利息費用。要求:采用while循環(huán)計算該應付債券20×2年至20×6年的年末攤余成本。代碼i=1amortisedCost=10432700#期初攤余成本=發(fā)行總價amortisedCostList=[]#創(chuàng)建空列表存放計算的攤余成本whilei<=4:

amortisedCost=round(amortisedCost+amortisedCost*0.05-10000000*0.06,2)#計算攤余成本

amortisedCostList.append(amortisedCost)#計算結(jié)果添加至列表i+=1else:

amortisedCost=10000000#最后一年年末攤余成本=債券面值

amortisedCostList.append(amortisedCost)print('應付債券20×2年至20×6年的年末攤余成本依次為:',amortisedCostList)自定義函數(shù)說明:5年期應付債券:面值10,000,000元、實際發(fā)行價格10,432,700元、票面利率6%、市場利率5%;

4年期應付債券:面值20,000,000元、實際發(fā)行價格18,645,200元、票面利率5%、市場利率7%;要求:自定義函數(shù)計算兩種債券到期前各年年末攤余成本。示例2代碼#自定義函數(shù):defcalcAmortisedCost(year,faceValue,issuePrice,couponRate,marketRate):i=1amortisedCost=issuePrice#期初攤余成本=發(fā)行總價amortisedCostList=[]#創(chuàng)建空列表存放計算的攤余成本whilei<=(year-1):amortisedCost=round(amortisedCost+amortisedCost*marketRate-faceValue*couponRate,2)amortisedCostList.append(amortisedCost)i+=1else:amortisedCost=faceValue#最后一年年末攤余成本=債券面值amortisedCostList.append(amortisedCost)print('應付債券期末攤余成本依次為:',amortisedCostList)自定義函數(shù)說明:5年期應付債券:面值10,000,000元、實際發(fā)行價格10,432,700元、票面利率6%、市場利率5%;

4年期應付債券:面值20,000,000元、實際發(fā)行價格18,645,200元、票面利率5%、市場利率7%;要求:自定義函數(shù)計算各債券年末攤余成本。示例2代碼#調(diào)用自定義函數(shù)calcAmortisedCost(5,10000000,10432700,0.06,0.05)calcAmortisedCost(4,20000000,18645200,0.05,0.07)輸出結(jié)果:應付債券期末攤余成本依次為:[10354335.0,10272051.75,10185654.34,10094937.06,10000000]應付債券期末攤余成本依次為:[18950364.0,19276889.48,19626271.74,20000000]03匿名函數(shù)神秘嘉賓:匿名函數(shù)當編寫某些比較簡單的函數(shù)時,按照def函數(shù)的格式化寫法會使代碼變得復雜,那么有沒有什么方法能跳過def語句,使代碼更加的簡潔易讀呢?匿名函數(shù):使用lambda關鍵字創(chuàng)建,是一種簡單的、在同一行中定義函數(shù)的方法,該方法不需使用def、return語句。語法:lambda[參數(shù),參數(shù)]:<表達式>注意匿名函數(shù)可以接收多個參數(shù)但只能返回一個表達式的值代碼#定義匿名函數(shù)并直接傳入?yún)?shù)print((lambdax,y:x*y)(4,5))三元運算符三元運算符:與if...else語句具有相似的作用;語法:條件成立的值if條件else條件不成立的值代碼#使用if...else語句a=2b=4

ifa>b:c=aelse:c=bprint(c)代碼#使用三元運算符a=2b=4

c=aifa>belsebprint(c)代碼lambda表達式與三元運算符連用print((lambdaa,b:aifa>belseb)(4,5))輸出結(jié)果:5if...else語句說明:公司采用經(jīng)濟增加值(EVA)進行績效評價,若本年經(jīng)濟增加值大于150萬元,則本年獎金為本年經(jīng)濟增加值的10%,否則,本年無獎金。要求:本年經(jīng)濟增加值為180萬元,使用條件語句計算本年獎金。代碼#創(chuàng)建一個變量EVA接收本年經(jīng)濟增加值EVA=1800000#if條件判斷開始ifEVA>1500000:bonus=EVA*0.1else:bonus=0#打印計算結(jié)果print(bonus)輸出結(jié)果:180000.0若要求使用匿名函數(shù)計算本年獎金,該如何寫呢?匿名函數(shù)示例3代碼#創(chuàng)建匿名函數(shù)print((lambdaEVA:EVA*0.1ifEVA>1500000else0)(1800000))輸出結(jié)果:180000.0說明:公司采用經(jīng)濟增加值(EVA)進行績效評價,若本年經(jīng)濟增加值大于150萬元,則本年獎金為本年經(jīng)濟增加值的10%,否則,本年無獎金。要求:本年經(jīng)濟增加值為180萬元,創(chuàng)建匿名函數(shù)計算本年獎金。匿名函數(shù)的優(yōu)點匿名函數(shù)的優(yōu)點:可以省去定義函數(shù)的過程,使代碼更加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論