python初学函数_Python初学者速收藏!面向Python初学者的知识-函数
什么是函數(shù)式編程?
函數(shù)式編程是一種編碼范例,其中我們定義要做什么而不是執(zhí)行什么動(dòng)作。這個(gè)想法最初是從數(shù)學(xué)中采用的,我們定義輸入到函數(shù)中的輸入以及我們期望從中獲得的輸出。 函數(shù)式編程很少依賴(lài)狀態(tài)管理-這意味著無(wú)論輸出多少,我們傳遞相同的參數(shù)時(shí),可以將其解釋為數(shù)據(jù)正在進(jìn)行一些轉(zhuǎn)換,最終導(dǎo)出所需要的輸出。
你在Python中的第一個(gè)功能
盡管Python并不是主要的功能語(yǔ)言,但它支持功能編程相對(duì)簡(jiǎn)單,因?yàn)镻ython中的所有內(nèi)容都是對(duì)象。這意味著可以將函數(shù)分配給變量并傳遞。 為了使事情簡(jiǎn)單,讓我們從打印Hello World的簡(jiǎn)單函數(shù)開(kāi)始:
函數(shù)的語(yǔ)法以def關(guān)鍵字開(kāi)頭,后跟函數(shù)名稱(chēng),然后使用圓括號(hào)。定義函數(shù)以冒號(hào)(:)結(jié)尾。然后在帶有四個(gè)空格縮進(jìn)的下一行中,該函數(shù)的主體開(kāi)始。縮進(jìn)是我們?cè)谑褂煤瘮?shù)時(shí)需要記住的最重要的事情。
函數(shù)和變量
全局變量和函數(shù)變量 。當(dāng)我們?cè)诤瘮?shù)內(nèi)部以及全局中擁有一個(gè)具有相同名稱(chēng)的變量時(shí),當(dāng)我們嘗試訪(fǎng)問(wèn)該變量時(shí)(無(wú)論是訪(fǎng)問(wèn)全局變量還是函數(shù)作用域變量),將存在歧義。 因此,Python提供了一個(gè)函數(shù),globals(),通過(guò)它我們可以訪(fǎng)問(wèn)函數(shù)內(nèi)部具有相同名稱(chēng)的全局變量:
將函數(shù)分配給變量 -在Python中,我們可以將函數(shù)分配給變量,然后調(diào)用它:
帶參數(shù)的函數(shù)
現(xiàn)在我們知道了如何定義一個(gè)函數(shù),是時(shí)候進(jìn)入下一個(gè)階段了,在該階段我們將輸入傳遞給函數(shù)-參數(shù)。為了快速理解它,我們將從一個(gè)數(shù)學(xué)函數(shù)開(kāi)始,在該函數(shù)中我們計(jì)算兩個(gè)數(shù)字的和:
和第一個(gè)函數(shù)一樣,它是一個(gè)簡(jiǎn)單的函數(shù),但是有兩個(gè)輸入- a和b。
調(diào)用功能 -僅通過(guò)調(diào)用函數(shù)并以函數(shù)中提到的順序傳遞參數(shù)或使用命名參數(shù),就可以通過(guò)兩種方式來(lái)調(diào)用帶有參數(shù)的函數(shù):
具有默認(rèn)值的參數(shù) -在上面的示例中,a和b是兩個(gè)強(qiáng)制性參數(shù)—這意味著開(kāi)發(fā)人員必須傳遞兩個(gè)參數(shù)來(lái)調(diào)用該函數(shù)。在Python中,我們可以使用默認(rèn)值指定參數(shù)。因此,這些參數(shù)將是可選參數(shù)。如果未傳遞任何可選參數(shù),則在調(diào)用函數(shù)時(shí),Python會(huì)考慮該參數(shù)的默認(rèn)值:
我們可以通過(guò)三種方式調(diào)用上述函數(shù),如下所示:
具有返回值的函數(shù)
我們已經(jīng)看到了如何將輸入傳遞給函數(shù)。是時(shí)候?qū)崿F(xiàn)函數(shù)的輸出了。它與Java,Kotlin等其他大多數(shù)語(yǔ)言類(lèi)似-我們需要使用return關(guān)鍵字并提及值:
Python具有返回多個(gè)值作為輸出的獨(dú)特功能,這是大多數(shù)語(yǔ)言無(wú)法做到的:
x,y并且z變量將分別分配有正,負(fù)和乘法值。
用作參數(shù)和返回值
Python函數(shù)式編程可以將函數(shù)作為輸出返回或?qū)⑵渥鳛閰?shù)傳遞。
作為參數(shù) -到目前為止,我們已經(jīng)看到了如何將變量作為參數(shù)傳遞給函數(shù)。現(xiàn)在,我們將學(xué)習(xí)如何將函數(shù)作為參數(shù)傳遞給其他函數(shù)-類(lèi)似于Kotlin中的高階函數(shù):
用作返回值(輸出) -與函數(shù)作為參數(shù)傳遞類(lèi)似,我們也可以將其作為輸出返回-這是Python中的獨(dú)特功能:
內(nèi)部功能
我們可以在另一個(gè)函數(shù)內(nèi)編寫(xiě)一個(gè)函數(shù),這是我迄今為止在任何其他編程語(yǔ)言中都沒(méi)有見(jiàn)過(guò)的。內(nèi)部函數(shù)的作用域是外部函數(shù)-內(nèi)部函數(shù)只能從外部函數(shù)訪(fǎng)問(wèn): to訪(fǎng)問(wèn)內(nèi)部功能的正確方法
無(wú)法從包裝函數(shù)的外部訪(fǎng)問(wèn)內(nèi)部函數(shù):
Lambda函數(shù)
Lambda是具有單行表達(dá)式的函數(shù)的最簡(jiǎn)單形式,并且沒(méi)有名稱(chēng)。在Python中,我們必須使用lambda關(guān)鍵字而不是def創(chuàng)建lambda函數(shù):
在這里,變量f是一個(gè)簡(jiǎn)單的lambda函數(shù),而a和b是的參數(shù)f。語(yǔ)法類(lèi)似于普通功能。唯一的變化是關(guān)鍵字和單行表達(dá)式。 以下是一個(gè)簡(jiǎn)單的示例,演示了我們?nèi)绾问褂闷胀ê瘮?shù)和lambda:
map和過(guò)濾器功能
到目前為止,我們已經(jīng)看到了如何創(chuàng)建創(chuàng)建函數(shù)和其他策略。開(kāi)箱即用的Python包含默認(rèn)功能,例如map和filter,在一些用例中很方便。
map-map是一個(gè)需要另一個(gè)函數(shù)對(duì)象以及任意數(shù)量的iterables類(lèi)似列表和字典的函數(shù)。map使用提供給它的函數(shù)對(duì)象迭代列表中的每個(gè)項(xiàng)目,并返回一個(gè)列表:
我們可以傳遞多個(gè)列表到map,如下所示:
過(guò)濾 -filter函數(shù)需要兩個(gè)參數(shù)-一個(gè)函數(shù)對(duì)象和一個(gè)可迭代的。Filter遍歷返回boolean值的函數(shù)對(duì)象中的每個(gè)項(xiàng)目。最后,filter返回一個(gè)包含從功能對(duì)象返回true的項(xiàng)目的列表。
裝飾器
裝飾器是一種設(shè)計(jì)模式-接受一個(gè)對(duì)象并為其添加新功能,而無(wú)需從調(diào)用站點(diǎn)進(jìn)行任何更改。如前所述,Python中的所有內(nèi)容都是一個(gè)對(duì)象-因此我們可以將函數(shù)用作修飾符,并可以將其應(yīng)用于其他函數(shù):
希望你能學(xué)到一些有用的東西,謝謝閱讀。
總結(jié)
以上是生活随笔為你收集整理的python初学函数_Python初学者速收藏!面向Python初学者的知识-函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 安卓 跨域(安卓跨平台)
- 下一篇: 电脑截屏软件哪个好用电脑截屏软件哪个好用
