檢視上一節:遞歸的練習課程
高階函數
Python支援函數式程式設計,當然也是支援高階函數的。
函數式程式設計:在Python中,函數是一等對象
一等對象一般都會具有如下特點:
① 對象是在運作時建立的
② 能指派給變量或作為資料結構中的元素
③ 能作為參數傳遞
④ 能作為傳回值傳回
高階函數:
接收函數作為參數,或者将函數作為傳回值的函數是高階函數;
當我們使用一個函數作為參數時,實際上是将指定的代碼傳遞進了目标函數。
高階函數至少要符合以下兩個特點中的一個:
① 接收一個或多個函數作為參數
② 将函數作為傳回值傳回
示例: 定義一個函數,可以将清單中的所有的偶數,儲存到一個新清單中并傳回、
代碼展示:
# 建立一個清單
l = [1,2,3,4,5,6,7,8,9,10]
def fn( lst) :
'''
fn()函數可以将指定清單中的所有偶數擷取出來,并儲存到一個新清單中傳回
參數:
lst:要進行篩選的清單
'''
# 建立一個新清單
new_list = []
# 對清單進行篩選
for n in lst :
# 判斷n的奇偶
if n %2==0 :
new_list.append(n)
# 傳回新清單
return new_list
def fn(l) #調用函數,并将清單l傳進去
執行結果為:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SY2kjZykzM2YTZlRWZxUDO1cDM0MTOlFjNmNzMkVzM38CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
這就擷取到了清單l的所有偶數。這就是一個普通的函數。接下來介紹高階函數是怎樣的,高階函數可以接收函數作為參數,當我們使用一個函數作為參數時,實際上是将指定的代碼傳遞進了目标函數。
取出所有的偶數、奇數和大于5的數等更多的功能,這就要将這個函數擴充一下了。
# 建立一個清單
l = [1,2,3,4,5,6,7,8,9,10]
# 定義一個函數,用來檢查一個任意的數字是否是偶數。
def fn2(i) :
if i % 2 == 0 :
return True
return False
# 這個函數用來檢查指定的數字是否大于5
def fn3(i):
if i > 5 :
return True
return False
# 這個函數可以将3的倍數取出
def fn4(i):
if i % 3 == 0 :
return True
return False
def fn(func , lst) :# 定義高階函數fn
# 建立一個新清單
new_list = []
# 對清單進行篩選
for n in lst :
new_list.append(n)
# 傳回新清單
return new_list
#此時就可以随意調用不同的函數來獲得不同的結果了,
#隻需要改變高階函數fn的兩個參數即可。
print(fn(fn4 , l))#此時調用的是fn4,清單是l,即意味着取出l清單中所有能被3整除的數。
點選檢視配套視訊教程
擷取更多内容請訂閱
Python學習站官方技術圈!