0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python的函數(shù)式編程介紹

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:了不起 ? 2023-09-27 16:54 ? 次閱讀

函數(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]))
# 結(jié)果: [1, 5, 9, 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)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93536
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4284

    瀏覽量

    62325
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84376
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Golang函數(shù)編程簡述

    函數(shù)編程(Functional Programming / FP)作為一種編程范式,具有無狀態(tài)、無副作用、并發(fā)友好、抽象程度高等優(yōu)點(diǎn)。目前流行的
    發(fā)表于 08-09 12:32 ?473次閱讀

    前端開發(fā)之函數(shù)編程實(shí)踐

    函數(shù)編程是一種編程范式,它將程序抽象為函數(shù)和數(shù)據(jù)結(jié)構(gòu),通過函數(shù)調(diào)用來實(shí)現(xiàn)程序的功能,并且
    發(fā)表于 06-05 10:19 ?441次閱讀
    前端開發(fā)之<b class='flag-5'>函數(shù)</b><b class='flag-5'>式</b><b class='flag-5'>編程</b>實(shí)踐

    函數(shù)編程思維

    函數(shù)編程思維
    發(fā)表于 09-07 14:57 ?7次下載
    <b class='flag-5'>函數(shù)</b><b class='flag-5'>式</b><b class='flag-5'>編程</b>思維

    現(xiàn)代C函數(shù)編程

    導(dǎo)讀:本文作者從介紹函數(shù)編程的概念入手,分析了函數(shù)編程
    發(fā)表于 09-30 16:43 ?2次下載

    函數(shù)編程的基本特性

    本文簡單介紹了一下函數(shù)編程的各種基本特性,希望能夠?qū)τ跍?zhǔn)備使用函數(shù)
    發(fā)表于 10-10 10:23 ?0次下載

    函數(shù)編程,性能,測試,編碼規(guī)范談Python

    這篇文章主要是對(duì)我收集的一些文章的摘要。因?yàn)橐呀?jīng)有很多比我有才華的人寫出了大量關(guān)于如何成為優(yōu)秀Python程序員的好文章。 我的總結(jié)主要集中在四個(gè)基本題目上:函數(shù)編程,性能,測試,編
    發(fā)表于 10-12 17:27 ?0次下載

    Python函數(shù)使用基礎(chǔ)教程

    Functional Programming(函數(shù)編程)的概念最早起源于LISP,由約翰·麥卡錫在1958年創(chuàng)立,最早提出了自動(dòng)垃圾回收的理念,這一理念現(xiàn)在也被Python/Java
    發(fā)表于 11-15 19:05 ?1103次閱讀

    函數(shù)編程語言、編程和程序驗(yàn)證

    函數(shù)編程是一種編程范型,它把計(jì)算看作是對(duì)數(shù)學(xué)函數(shù)的求值,避免了狀態(tài)和易變數(shù)據(jù)結(jié)構(gòu),函數(shù)是構(gòu)造程
    發(fā)表于 04-03 11:01 ?3次下載

    Python函數(shù)文件與模塊的程序說明

    “探索Python ” 這一系列的前幾篇文章已為Python 編程新手介紹了幾方面的主題, 包括變量、容器對(duì)象和復(fù)合語句。本文以這些概念為基礎(chǔ),構(gòu)造一個(gè)完整的
    發(fā)表于 09-10 16:06 ?2次下載
    <b class='flag-5'>Python</b>的<b class='flag-5'>函數(shù)</b>文件與模塊的程序說明

    Python的Matplotlib函數(shù)匯總

    本文檔的主要內(nèi)容詳細(xì)介紹的是Python的Matplotlib函數(shù)匯總免費(fèi)下載。
    發(fā)表于 12-17 08:00 ?2次下載

    如何搭建Python編程環(huán)境

    Python是一種高級(jí)編程語言,被廣泛用于科學(xué)計(jì)算、數(shù)據(jù)分析、人工智能、Web開發(fā)等領(lǐng)域。想要學(xué)習(xí)Python編程,首先需要搭建一個(gè)合適的編程
    的頭像 發(fā)表于 04-14 12:07 ?5078次閱讀

    為什么Python沒有main函數(shù)

    今天的文章中,我們來討論一下為什么有的編程語言有main函數(shù),而Python為什么沒有main函數(shù)。
    發(fā)表于 08-17 11:47 ?300次閱讀

    python函數(shù)返回多個(gè)參數(shù)

    函數(shù)是程序設(shè)計(jì)中的一個(gè)重要概念,在很多編程語言中都存在。函數(shù)可以接受輸入數(shù)據(jù),并且根據(jù)輸入數(shù)據(jù)進(jìn)行一系列操作,最后可以返回一個(gè)或多個(gè)結(jié)果。Python是一種非常流行的
    的頭像 發(fā)表于 11-21 16:37 ?1146次閱讀

    python調(diào)用math函數(shù)的方法

    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的內(nèi)置函數(shù)

    Python是一種高級(jí)編程語言,它提供了許多內(nèi)置函數(shù),可以幫助開發(fā)人員更輕松地處理各種任務(wù)。但是,在Python中并非所有的函數(shù)都是內(nèi)置
    的頭像 發(fā)表于 11-29 14:27 ?1342次閱讀