函數的意義
a) 函數:表示的就是一種行為操作,就是封裝了一段代碼,如果我們要使用這段代碼,就可以通過函數名稱直接調用函數,來執行封裝的代碼。
b) 函數的意義:降低了代碼的重復量,提高了代碼的重復使用性能。
c) 函數的定義:封裝了一段代碼的代碼模塊,這個模塊定義了名稱,可以通過名稱來調用執行這段代碼,實現一定的功能。函數的聲明
a) 在python中,通過def(define)來聲明定義一個函數
b) 函數在聲明/定義的時候,并不會執行函數的調用
a) 在python中,可以直接通過函數名稱,調用指定的函數來執行函數中的代碼函數的參數:
a) 參數的意義:就是函數要執行時需要的數據
b) 形式參數:聲明函數時,定義在函數小括號中的參數變量
c) 實際參數:調用函數時,實際傳遞給函數的具體的數據函數的返回值:
a) 返回值:就是函數執行的結果
b) 函數的返回值,通過return關鍵字返回
c) Return關鍵字只能出現在函數中,一旦執行表示函數運行結束函數的類型
a) 無參數、無返回值
b) 有參數,無返回值
c) 無參數,有返回值
d) 有參數,有返回值函數的使用
a) 分析項目,如果出現了類似的功能,就優先考慮是否封裝成函數,方便在不同的地方調用:之前項目中的計算器
b) 分析項目,如果出現了固定的大量代碼塊,就優先考慮是否封裝函數,來簡化代碼的邏輯:之前項目中的界面
再說變量
變量:程序中臨時存儲數據的容器[程序運行過程中,可以存儲數據,一旦程序停止運行,程序中的變量中存儲的數據就會丟失]
程序中聲明過變量、函數的參數中出現過變量~~~這些變量都有什么區別呢?
關于程序中的全局變量和局部變量
全局變量:聲明在函數外部的變量,在任何地方都可以使用/訪問這個變量和它的值
程序中的聲明變量后面的if語句中、循環語句中,函數中等等都可以訪問到這個變量
局部變量:聲明在函數內部的變量,在函數內部可以訪問,出了函數誰也不認識它!
全局變量和局部變量的使用
全局變量,在函數外部的使用方式,直接使用即可!
全局變量,在函數中怎么使用
函數中,可以直接訪問全局變量的值
函數中,不能對全局變量直接修改
函數中,要使用(修改)全局變量,使用global關鍵字,將全局變量分配到函數中進行使用。
全局變量,通常情況用于定義存儲公共數據的容器【變量】在函數中使用全局變量,必須使用global關鍵字將全局變量引入到函數中去增刪改查
局部變量,通常情況是在函數中用于臨時存儲數據,用于進行數據運算。當函數執行完成,這個變量就可以丟棄了。
函數的參數:默認值
默認值參數,可以在定義函數的形式參數的同時賦值,這個值就是參數的默認值,如果在調用函數時,這個參數沒有傳遞,就會使用默認值進行運算
def test(name, age=12):
函數的參數:可變參數
可變參數:在定義函數形式參數時,在參數的前面添加一個符號:* ,表示這個參數可以在調用的時候傳遞0個或者N個參數,可變參數會將傳遞給函數的數據封裝成一個元組進行使用
def test(type, *names):
函數的參數:關鍵字參數
關鍵字參數是一種特殊的可變參數,要求在調用函數時,參數傳遞的語法必須是 k=v的形式,可以在調用時,傳遞0個或者N個關鍵字參數[k=v ..],關鍵字參數會將傳遞給函數的數據,封裝成字典在函數中使用
def test(type, **names):
*一個關鍵字參數和一個可變參數放在一起,可以構成萬能參數,該參數可以傳遞任何數據,一般來說,該參數并不常用。
Def test(*num1, **num2)
函數的默認值參數、可變參數、關鍵字參數,必須放在參數列表的最后面,不能放在固定參數的前面使用!
函數的返回值:
和常規編程語言一樣,可以在函數執行完成時,返回一個數據作為執行結果
在python中,還可以通過return關鍵字,在函數中返回多個數據,返回的數據按照順序需要在調用時接受。一定記得按照順序接收。
def test():
……
return x, y, z, ..
函數的互相調用
...
函數的遞歸調用
...