Python 函數定義以及參數傳遞
成都創(chuàng)新互聯公司是一家業(yè)務范圍包括IDC托管業(yè)務,雅安服務器托管、主機租用、主機托管,四川、重慶、廣東電信服務器租用,雅安電信機房,成都網通服務器托管,成都服務器租用,業(yè)務范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯網數據服務公司。
1.函數定義
#形如def func(args...):
doSomething123
以關鍵字def 開頭,后面是函數名和參數下面是函數處理過程。
舉例:
def add( a, b ):
return a+b12
參數可以設定默認值,如:
def add( a, b=10 ): #注意:默認值參數只會運算一次
return a+b12
默認值參數只會運算一次是什么意思?
def func( a, b=[] ): #b的默認值指向一個空的列表,每次不帶默認值都會指向這塊內存
b.append(a) return b
print(func(1))#向默認的空列表里加入元素1 ,默認列表里已經是[1]print(func(2))#向默認的列表里加入元素2,默認列表里已經是[1,2]print(func(3,[]))#向b指向的空列表里加入元素1 ,默認列表里還是[1,2]print(func(4))#向默認的列表里加入元素4,默認列表里已經是[1,2,4]'''
結果:
[1]
[1, 2]
[3]
[1, 2, 4]
'''12345678910111213141516
這下明白為什么默認參數只計算一次了吧,函數參數不傳遞時默認值總是指向固定的內存空間,就是第一次計算的空間。
2.參數傳遞
def func(a, b):
print('a=%d, b=%d' % (a,b) )12
在使用函數時可以如下方式,結果都是相同的
func(10,20) #不使用參數名,需要按參數順序傳遞func(a=10,b=20) #使用參數名可以不按順序傳遞func(b=20,a=10)#結果:a=10, b=20a=10, b=20a=10, b=201234567
如果函數定義形式如下方式:
def func(*args): #這種定義會把傳遞的參數包成元組
print(args,type(args))
func(10,20)#結果:#(10, 20) class 'tuple'1234567
舉一個和上述過程相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
a = (10, 20)
func(*a) #在調用函數使用`*`則會把元組解包成單個變量按順序傳入函數#結果:a=10, b=20123456
總結:*號在定義函數參數時,傳入函數的參數會轉換成元組,如果 *號在調用時則會把元組解包成單個元素。
另一種定義:
def func(**kw):#使用**定義參數會把傳入參數包裝成字典dict
print(kw, type(kw) )
func(a=10,b=20)#這種函數在使用時必須指定參數值,使用key=value這種形式#結果:{'b': 20, 'a': 10} class 'dict'12345
相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
d = {'a':10, 'b':20 }
func(**d) #在調用時使用**會把字典解包成變量傳入函數。12345
def func(*args, **kw):#這種形式的定義代表可以接受任意類型的參數
print(args,kw )12
總結:**號在定義函數參數時,傳入函數的參數會轉換成字典,如果 **號在調用時則會把字典解包成單個元素。
lambda表達式
lambda表達式就是一種簡單的函數
形如 f = lambda 參數1,參數2: 返回的計算值
例如:
add = lambda x,y: x+y
print(add(1,2))'''
結果:3
'''12345
1、Python中的函數是什么意思?
如果你需要實現一個功能,那么你需要用代碼來實現。
那么Python中為你設置了一些固定功能的代碼,實現一個功能的這些代碼就是一個函數。
簡而言之,函數就是實現特有的功能,你可以直接調用的內建函數。
2、函數舉例
Python內置了許多函數,我們可以直接調用。
比如:abs函數,是用來求絕對值的。
如下圖所示,a就是輸入,b就是經過函數處理后得到的輸出。
具體如何求絕對值?我們不管,abs幫我們做好了,我們只要把他需要的值給他就行了
函數的主要作用是結束重復編寫代碼,函數的編寫更容易理解測試代碼。
函數不單單只能夠重復代碼,也可以將函數外部的數據傳遞至函數內部的代碼中。位置調用實參,關鍵字調用實參,形參默認值。
有些時候我們需要默認值,當你不填寫的時候它會有個默認值,返回值,內置方法return可指定返回的值,在函數內部代碼中,如果遇到return則會立即停止,并且返回你指定的值。在默認沒有指定的情況下,返回的值時none,不指定返回值時,讓實參變成可選的在實際的使用中可能有些時候需要實參,但有時候不需要,調用函數時不可能一直更改定義好的函數,這時需要我們提供可以選擇的實參。
函數的使用:
(1).函數是具有獨立功能的代碼塊,是一個整體(封裝了函數功能的代碼), 完成某個功能的小工具
特點: 函數最大的特點是封裝
(2).作用: 提高開發(fā)效率,實現代碼的重用
(3).函數使用步驟:
① 定義函數: 把代碼的功能封裝成一個整體
② 調用函數: 享受封裝的結果
(4).函數調用流程: ☆ ☆ ☆
① 函數定義時 不會執(zhí)行函數體中代碼
② 函數調用時,才會執(zhí)行函數體中代碼
③ 函數調用完成以后,一定要回到函數調用的地方繼續(xù)向下執(zhí)行
有關于軟件測試的學習知識,可以看黑馬程序員軟件測試知識,有視頻、文章、學習文檔等等!