1.編程方式分:面向對象、面向過程、函數式編程 2.區分面向對象 》類 》class面向過程 》過程 》def函數式編程 》函數 》def 3.編程語言中函數的定義: 函數是邏輯結構化和過程化的一種編程方法 4.過程是沒有返回值的函數 5.使用函數的優點: 1)代碼可重覆使用2)代碼可保持一致性3) ...
1.編程方式分:面向對象、面向過程、函數式編程
2.區分
面向對象----》類----》class
面向過程----》過程----》def
函數式編程----》函數----》def
3.編程語言中函數的定義:
函數是邏輯結構化和過程化的一種編程方法
4.過程是沒有返回值的函數
5.使用函數的優點:
1)代碼可重覆使用
2)代碼可保持一致性
3)可擴展性
6.
當一個函數/過程沒有使用return顯示的定義返回值時,python解釋器會隱式的返回None,所以在python中即便是過程也可以算作函數。
7.返回值
返回值的數等於0,返回None
返回值的數等於1,返回object
返回值的數大於1,返回tuple
8.參數
1)形參和實參形參:形式參數,不是實際存在的,是虛擬變數 。在定義函數體的時候使用形參,目的是在函數 調用時接受參數(形參參個數、類型與實參一一對應)
實參:實際參數,調用函數時傳給函數的參數,可以是常量、變數、表達式、函數,傳給形參
2)位置參數和關鍵字參數
標準調用:實參與形參位置一一對應;
關鍵字調用:位置無需固定
3)預設參數
特點:調用函數的時候,預設參數非必須傳遞
4)參數組
*args 接收n個位置參數,轉換成元組的方式
**kwargs 接收 n個關鍵字參數,轉換成字典的方式
9.局部變數
只在局部範圍內發生作用,即只在函數內部發生作用
10.全局變數
全局變數作用域是整個程式,要把局部變數變成全局變數用global,但是不建議在函數里使用,可能會出現很嚴重bug
11.局部變數除了整數、字元串不能影響全局變數,像字典、元組、列表、類都可以更改,並影響到全局變數
12.遞歸
如果一個函數在內部調用自身,這個函數就是遞歸函數
13.遞歸特性
1)必須有一個明確的結束條件
2)每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少
3)遞歸效率不高,遞歸層次過多會導致棧溢出(在電腦中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出
14.高階函數
變數可以指向函數,函數的參數能接收變數,那麽一個函數可以接收另一個函數作為參數,這種 函數就稱之為高階函數。
15.函數詳解:
http://www.cnblogs.com/alex3714/articles/5740985.html