函數
回顧一下函數,函數就是把固定的邏輯放在一起,方便我們下次使用,不用寫重復的代碼,提升代碼的復用性以及可讀性;一個好的函數,可以只通過函數名就可以看懂這個過程要做什么,所以當我們有很大一段邏輯代碼的時候,拆成不同的函數,可以大大的提高代碼易讀性。
函數式編程
函數式編程,這里多了一個“式”,雖然也可以歸結到面向過程的程序設計,但其思想更接近數學計算。函數式編程的一個特點就是,允許把函數本身作為參數傳入另一個函數,還允許返回一個函數!
Python對函數式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數式編程語言。
函數作為參數
Python內建的filter()函數用于過濾序列。 filter()函數接收一個函數和一個序列作為參數,filter()把傳入的函數依次作用于每個元素,然后根據返回值是True還是False決定保留還是丟棄該元素。
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 結果: [1, 5, 9, 15]
把一個序列中的空字符串刪除的寫法:
def not_empty(s):
return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
# 結果: ['A', 'B', 'C']
可見filter的用法突出一個“篩選”注意到filter()函數返回的是一個Iterator,也就是一個惰性序列,所以要強迫filter()完成計算結果,需要用list()函數獲得所有結果并返回list。
-
編程
+關注
關注
88文章
3592瀏覽量
93596 -
函數
+關注
關注
3文章
4306瀏覽量
62431 -
python
+關注
關注
56文章
4782瀏覽量
84453
發布評論請先 登錄
相關推薦
評論