更新時(shí)間:2017-08-23 來(lái)源:黑馬程序員python培訓(xùn)學(xué)院 瀏覽量:
一、函數(shù)
函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。無(wú)論在哪門(mén)編程語(yǔ)言當(dāng)中,函數(shù)(在某些語(yǔ)言里稱(chēng)作方法,意義是相同的)都扮演著至關(guān)重要的角色。函數(shù)能提高應(yīng)用的模塊性和代碼的重復(fù)利用率。
Python提供了許多內(nèi)建函數(shù),比如print(),你可以直接使用,當(dāng)然你也可以自己創(chuàng)建函數(shù),這叫做用戶自定義函數(shù)。
在一些編程語(yǔ)言當(dāng)中,函數(shù)聲明和函數(shù)定義是區(qū)分開(kāi)的,比如C語(yǔ)言,函數(shù)聲明和函數(shù)定義可以出現(xiàn)在不同的文件中,但在Python中,函數(shù)聲明和函數(shù)定義是視為一體的。比如:
def function(params):
block return expression/value
在定義了函數(shù)之后,就可以使用該函數(shù)了,但是在Python中要注意一個(gè)問(wèn)題,就是在Python中不允許前向引用,即在函數(shù)定義之前,不允許調(diào)用該函數(shù)。
下面是函數(shù)定義與調(diào)用的一個(gè)示例:
# 定義函數(shù)def printme( str ):
"打印傳入的字符串"
print str; return;
# 調(diào)用函數(shù)printme("調(diào)用用戶自定義函數(shù)!");
二、遞歸
程序調(diào)用自身的編程技巧稱(chēng)為遞歸( recursion)。遞歸做為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用。 一個(gè)過(guò)程或函數(shù)在其定義或說(shuō)明中有直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型復(fù)雜的問(wèn)題層層轉(zhuǎn)化為一個(gè)與原問(wèn)題相似的規(guī)模較小的問(wèn)題來(lái)求解,遞歸策略只需少量的程序就可描述出解題過(guò)程所需要的多次重復(fù)計(jì)算,大大地減少了程序的代碼量。
在使用遞歸時(shí),需要注意以下幾點(diǎn):
遞歸就是在過(guò)程或函數(shù)里調(diào)用自身 必須有一個(gè)明確的遞歸結(jié)束條件,稱(chēng)為遞歸出口。 注意: 切勿忘記遞歸出口,避免函數(shù)無(wú)限調(diào)用。
從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事!講的什么故事呢?『從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事!講的什么故事呢?』……
不斷調(diào)用這個(gè)故事的內(nèi)容,這就是遞歸。這個(gè)故事可以一直講下去,這就是沒(méi)有遞歸出口,造成了死循環(huán)。
下面的這個(gè)圖也可以很好地說(shuō)明遞歸概念。
本文版權(quán)歸黑馬程序員Python培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Python培訓(xùn)學(xué)院
首發(fā):http://ko1818.cn/news/python.html
Python培訓(xùn)之2017年智能家居與可穿戴設(shè)備市場(chǎng)概況
2017-08-23Python培訓(xùn)之想成為機(jī)器學(xué)習(xí)工程師?這份自學(xué)指南你值得收藏
2017-08-23Python培訓(xùn)之Python 為何能坐穩(wěn) AI 時(shí)代頭牌語(yǔ)言
2017-08-21Python培訓(xùn)之人工智能識(shí)別植物準(zhǔn)確率高達(dá)80%
2017-08-21Python培訓(xùn)之你的工作會(huì)被人工智能搶嗎? 這些職業(yè)首先受到?jīng)_擊
2017-08-21Python培訓(xùn)之李開(kāi)復(fù):人工智能恐將拉大貧富差距
2017-08-21