函數(shù)
回顧一下函數(shù),函數(shù)就是把固定的邏輯放在一起,方便我們下次使用,不用寫重復(fù)的代碼,提升代碼的復(fù)用性以及可讀性;一個(gè)好的函數(shù),可以只通過函數(shù)名就可以看懂這個(gè)過程要做什么,所以當(dāng)我們有很大一段邏輯代碼的時(shí)候,拆成不同的函數(shù),可以大大的提高代碼易讀性。
函數(shù)式編程
函數(shù)式編程,這里多了一個(gè)“式”,雖然也可以歸結(jié)到面向過程的程序設(shè)計(jì),但其思想更接近數(shù)學(xué)計(jì)算。函數(shù)式編程的一個(gè)特點(diǎn)就是,允許把函數(shù)本身作為參數(shù)傳入另一個(gè)函數(shù),還允許返回一個(gè)函數(shù)!
Python對(duì)函數(shù)式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數(shù)式編程語言。
函數(shù)作為參數(shù)
Python內(nèi)建的filter()函數(shù)用于過濾序列。 filter()函數(shù)接收一個(gè)函數(shù)和一個(gè)序列作為參數(shù),filter()把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
把一個(gè)序列中的空字符串刪除的寫法:
def not_empty(s):
return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
# 結(jié)果: ['A', 'B', 'C']
可見filter的用法突出一個(gè)“篩選”注意到filter()函數(shù)返回的是一個(gè)Iterator,也就是一個(gè)惰性序列,所以要強(qiáng)迫filter()完成計(jì)算結(jié)果,需要用list()函數(shù)獲得所有結(jié)果并返回list。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
函數(shù)式編程(Functional Programming / FP)作為一種編程范式,具有無狀態(tài)、無副作用、并發(fā)友好、抽象程度高等優(yōu)點(diǎn)。目前流行的編
發(fā)表于 08-09 12:32
?473次閱讀
函數(shù)式編程是一種編程范式,它將程序抽象為函數(shù)和數(shù)據(jù)結(jié)構(gòu),通過函數(shù)調(diào)用來實(shí)現(xiàn)程序的功能,并且
發(fā)表于 06-05 10:19
?441次閱讀
函數(shù)式編程思維
發(fā)表于 09-07 14:57
?7次下載
導(dǎo)讀:本文作者從介紹函數(shù)式編程的概念入手,分析了函數(shù)式編程
發(fā)表于 09-30 16:43
?2次下載
本文簡單介紹了一下函數(shù)式編程的各種基本特性,希望能夠?qū)τ跍?zhǔn)備使用函數(shù)式
發(fā)表于 10-10 10:23
?0次下載
這篇文章主要是對(duì)我收集的一些文章的摘要。因?yàn)橐呀?jīng)有很多比我有才華的人寫出了大量關(guān)于如何成為優(yōu)秀Python程序員的好文章。 我的總結(jié)主要集中在四個(gè)基本題目上:函數(shù)式編程,性能,測試,編
發(fā)表于 10-12 17:27
?0次下載
Functional Programming(函數(shù)式編程)的概念最早起源于LISP,由約翰·麥卡錫在1958年創(chuàng)立,最早提出了自動(dòng)垃圾回收的理念,這一理念現(xiàn)在也被Python/Java
發(fā)表于 11-15 19:05
?1103次閱讀
函數(shù)式編程是一種編程范型,它把計(jì)算看作是對(duì)數(shù)學(xué)函數(shù)的求值,避免了狀態(tài)和易變數(shù)據(jù)結(jié)構(gòu),函數(shù)是構(gòu)造程
發(fā)表于 04-03 11:01
?3次下載
“探索Python ” 這一系列的前幾篇文章已為Python 編程新手介紹了幾方面的主題, 包括變量、容器對(duì)象和復(fù)合語句。本文以這些概念為基礎(chǔ),構(gòu)造一個(gè)完整的
發(fā)表于 09-10 16:06
?2次下載
本文檔的主要內(nèi)容詳細(xì)介紹的是Python的Matplotlib函數(shù)匯總免費(fèi)下載。
發(fā)表于 12-17 08:00
?2次下載
Python是一種高級(jí)編程語言,被廣泛用于科學(xué)計(jì)算、數(shù)據(jù)分析、人工智能、Web開發(fā)等領(lǐng)域。想要學(xué)習(xí)Python編程,首先需要搭建一個(gè)合適的編程
發(fā)表于 04-14 12:07
?5078次閱讀
今天的文章中,我們來討論一下為什么有的編程語言有main函數(shù),而Python為什么沒有main函數(shù)。
發(fā)表于 08-17 11:47
?300次閱讀
函數(shù)是程序設(shè)計(jì)中的一個(gè)重要概念,在很多編程語言中都存在。函數(shù)可以接受輸入數(shù)據(jù),并且根據(jù)輸入數(shù)據(jù)進(jìn)行一系列操作,最后可以返回一個(gè)或多個(gè)結(jié)果。Python是一種非常流行的
發(fā)表于 11-21 16:37
?1146次閱讀
在Python編程中,數(shù)學(xué)函數(shù)是非常重要的工具,我們可以使用它們進(jìn)行各種數(shù)值計(jì)算、幾何運(yùn)算和統(tǒng)計(jì)分析等操作。Python的標(biāo)準(zhǔn)庫中內(nèi)置了很多數(shù)學(xué)函數(shù)
發(fā)表于 11-22 11:01
?2676次閱讀
Python是一種高級(jí)編程語言,它提供了許多內(nèi)置函數(shù),可以幫助開發(fā)人員更輕松地處理各種任務(wù)。但是,在Python中并非所有的函數(shù)都是內(nèi)置
發(fā)表于 11-29 14:27
?1342次閱讀
評(píng)論