python高階函數心得筆記,python高階函數知識_第1頁
python高階函數心得筆記,python高階函數知識_第2頁
python高階函數心得筆記,python高階函數知識_第3頁
python高階函數心得筆記,python高階函數知識_第4頁
python高階函數心得筆記,python高階函數知識_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、遞歸函數什么是遞歸函數通過前面的學習知道一個函數可以調用其他函數。如果一個函數在內部不調用其它的函數,而是自己本身的話,這個函數就是遞歸函數。遞歸函數的作用舉個例子,我們來計算階乘n! = 1 * 2 * 3 * . * n解決辦法1:使用循環來完成def cal(num): result,i = 1,1 while i def fun(a, b, opt):. print(a = % a). print(b = % b). print(result = % opt(a, b). add = lambda x,y:x+y fun(1, 2, add) # 把 add 作為實參傳遞a = 1b

2、= 2result = 3練習:有一個列表students = name: zhangsan, age: 18, score: 92, name: lisi, age: 20, score: 90, name: wangwu, age: 19, score: 95, name: jerry, age: 21, score: 98, name: chris, age: 17, score: 100,要求,對上述列表里的數據按照score進行升序排序。Python中使用函數作為參數的內置函數和類:函數名或類名功能參數描述sorted函數用來將一個無序列表進行排序函數參數的返回值規定按照元素的哪個屬

3、性進行排序filter類用來過濾一個列表里符合規定的所有元素,得到的結果是一個迭代器函數參數的返回值指定元素滿足的過濾條件map類將列表里的每一項數據都執行相同的操作,得到的結果是一個迭代器函數參數用來指定列表里元素所執行的操作reduce函數對一個序列進行壓縮運算,得到一個值。python3以后,這個方法被移到了functools模塊函數參數用來指定元素按照哪種方式合并高階函數在Python中,函數其實也是一種數據類型。def test(): return hello worldprint(type(test) # 函數對應的數據類型是function,可以把它當做是一種復雜的數據類型。既然

4、同樣都是一種數據類型,我們就可以把它當做數字或者字符串來處理。定義一個變量指向函數在Python中,我們還可以定義一個變量,讓它來指向一個函數,相當于給函數起了一個別名。def test(): return hello wroldfun = test # 定義了一個變量fun,讓它指向了 test 這個函數print(fun() # 使用fun()可以直接調用test這個函數print(id(fun) # 1819677672040print(id(test) # 1819677672040注意:在定義一個變量表示一個函數時,函數后面不能加括號!加括號表示的是調用這個函數。def test()

5、: return hello worldresult = test() # 這種寫法是調用test函數,并把函數的返回值賦值給result變量print(result() # 這里會報錯 TypeError: str object is not callablefun = test # 這種寫法是給test函數起了一個別名,注意,這里的test后面不能加()fun() # 可以使用別名調用這個函數高階函數既然變量可以指向函數,函數的參數能接收變量,那么一個函數就可以接收另一個函數作為參數,同樣,我們還可以把一個函數當做另一個函數的返回值。這種函數的使用方式我們稱之為高階函數。函數做為另一個函數

6、的參數def test(age,action): if age 18: print(您還沒滿十八歲,請退出) action() # 把參數action直接當做一個函數來調用def smoke(): print(我已經年滿十八歲了,我想抽煙)my_action = smoke # 定義一個變量my_action,讓它指向smoke函數test(21, my_action) # 將my_action傳給 test 函數作為它的參數test(21,smoke) # 還可以不再定義一個新的變量,直接傳入函數名函數作為另一個函數的返回值def test(): print(我是test函數里輸入的內容)def demo(): print(我是demo里輸入的內容) return test # test 函數作為demo函數的返回值result = demo() # 我是demo里輸入的內容 調用 demo 函數,把demo函數的返回值賦值給 resultprint(type(result) # result 的類型是一個函數result

溫馨提示

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

最新文檔

評論

0/150

提交評論