資源描述:
《黑馬程序員python基礎(chǔ)班教程筆記:(38)遞歸函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、遞歸函數(shù)<1>什么是遞歸函數(shù)通過(guò)前?的學(xué)習(xí)知道?個(gè)函數(shù)可以調(diào)?其他函數(shù)。如果?個(gè)函數(shù)在內(nèi)部不調(diào)?其它的函數(shù),?是??本身的話,這個(gè)函數(shù)就是遞歸函數(shù)。<2>遞歸函數(shù)的作?舉個(gè)例?,我們來(lái)計(jì)算階乘n!=1*2*3*...*n解決辦法1:看階乘的規(guī)律1!=12!=2×1=2×1!3!=3×2×1=3×2!4!=4×3×2×1=4×3!...n!=n×(n-1)!解決辦法2:原理:匿名函數(shù)?lambda關(guān)鍵詞能創(chuàng)建?型匿名函數(shù)。這種函數(shù)得名于省略了?def聲明函數(shù)的標(biāo)準(zhǔn)步驟。lambda函數(shù)的語(yǔ)法只包含?個(gè)語(yǔ)句,如下:lambda[arg1[,arg2,.....argn]]:e
2、xpression如下實(shí)例:sum=lambdaarg1,arg2:arg1+arg2#調(diào)?sum函數(shù)print"Valueoftotal:",sum(10,20)print"Valueoftotal:",sum(20,20)以上實(shí)例輸出結(jié)果:Valueoftotal:30Valueoftotal:40Lambda函數(shù)能接收任何數(shù)量的參數(shù)但只能返回?個(gè)表達(dá)式的值匿名函數(shù)不能直接調(diào)?print,因?yàn)閘ambda需要?個(gè)表達(dá)式應(yīng)?場(chǎng)合函數(shù)作為參數(shù)傳遞1.??定義函數(shù)2.作為內(nèi)置函數(shù)的參數(shù)想?想,下?的數(shù)據(jù)如何指定按age或name排序?stus=[{"name":"zhang
3、san","age":18},{"name":"lisi","age":19},{"name":"wangwu","age":17}]按name排序:>>>stus.sort(key=lambdax:x['name'])>>>stus[{'age':19,'name':'lisi'},{'age':17,'name':'wangwu'},{'age':按age排序:2.作為內(nèi)置函數(shù)的參數(shù)想?想,下?的數(shù)據(jù)如何指定按age或name排序?stus=[{"name":"zhangsan","age":18},{"name":"lisi","age":19},{"name":"
4、wangwu","age":17}]按name排序:>>>stus.sort(key=lambdax:x['name'])>>>stus[{'age':19,'name':'lisi'},{'age':17,'name':'wangwu'},{'age':按age排序: