定義:函數(shù)是指將一組語句的集合通過一個名字(函數(shù)名)封裝起來,要想執(zhí)行這個函數(shù),只需調(diào)用其函數(shù)名即可
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)平泉,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
特性:
1、減少重復(fù)代碼
2、使程序變的可擴(kuò)展
3、使程序變得易維護(hù)
語法定義
函數(shù)參數(shù)與局部變量
形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時,即該釋放所分配的內(nèi)存單元。因此只在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)用函數(shù)后則不能再使用該形參變量
實參可以是常量、變量、表達(dá)式函數(shù)等,無論實參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值,輸入等辦法使參數(shù)獲得確定值
默認(rèn)參數(shù)
非固定參數(shù)
若你的函數(shù)在定義時不確定傳入多少個參數(shù),就可以使用非固定參數(shù)
全局與局部變量
在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。
全局變量作用域是整個程序,局部變量作用域是定義該變量的子程序。
當(dāng)全局變量與局部變量同名時:
在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。
返回值
要想獲取函數(shù)的執(zhí)行結(jié)果,就可以用return語句把結(jié)果返回
函數(shù)在執(zhí)行過程中只要遇到return語句,就會停止執(zhí)行并返回結(jié)果
如果未在函數(shù)中指定return,那這個函數(shù)的返回值為None
如果有多個返回值,會以元組的形式返回
遞歸函數(shù)
在函數(shù)內(nèi)部,可以調(diào)用其他函數(shù)。如果一個函數(shù)在內(nèi)部調(diào)用自身本身,這個函數(shù)就是遞歸函數(shù)。
遞歸特性:
1. 必須有一個明確的結(jié)束條件
2. 每次進(jìn)入更深一層遞歸時,問題規(guī)模相比上次遞歸都應(yīng)有所減少
3. 遞歸效率不高,遞歸層次過多會導(dǎo)致棧溢出(在計算機(jī)中,函數(shù)調(diào)用是通過棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的,每當(dāng)進(jìn)入一個函數(shù)調(diào)用,棧就會加一層棧幀,每當(dāng)函數(shù)返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調(diào)用的次數(shù)過多,會導(dǎo)致棧溢出)
匿名函數(shù)
匿名函數(shù)就是不需要顯式的指定函數(shù)