您好,登錄后才能下訂單哦!
這篇文章主要介紹了python的函數(shù)形參和返回值是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇python的函數(shù)形參和返回值是什么文章都會(huì)有所收獲,下面我們一起來看看吧。
一個(gè)函數(shù)執(zhí)行后可以返回多個(gè)返回值
def measure(): print('測量開始。。。。') temp=39 wetness=50 print("測量結(jié)束") #元組--可以包含多個(gè)數(shù)據(jù),因此可以使用元組一次返回多個(gè)值 return (temp,wetness) result=measure() print(result)
運(yùn)行結(jié)果:
測量開始。。。。
測量結(jié)束
(39, 50)
def measure(): print('測量開始。。。。') temp=39 wetness=50 print("測量結(jié)束") #元組--可以包含多個(gè)數(shù)據(jù),因此可以使用元組一次返回多個(gè)值 return (temp,wetness) #如果函數(shù)返回的類型是元組,同時(shí)希望單獨(dú)的處理元組中的元素 #可以使用多個(gè)變量,一次接收函數(shù)的返回結(jié)果 #使用多個(gè)變量接收結(jié)果時(shí),變量的個(gè)數(shù)應(yīng)該和元組的元素個(gè)數(shù)一致 gl_temp,gl_wetness=measure() print(gl_temp) print(gl_wetness)
運(yùn)行結(jié)果:
測量開始。。。。
測量結(jié)束
(39, 50)
交換兩個(gè)變量的值
a=6 b=100 #使用其他變量 c=a a=b b=c #不使用其他變量 a=a+b b=a-b a=a-b #python專有 a,b=b,a print("a的值為 %d"%a) print("b的值為 %d"%b)
在函數(shù)內(nèi)部,針對(duì)參數(shù)使用賦值語句,不會(huì)改變調(diào)用函數(shù)時(shí)傳遞的實(shí)參的值
無論傳遞的參數(shù)是可變還是不可變,只要針對(duì)參數(shù)使用賦值語句,會(huì)在函數(shù)內(nèi)部修改局部變量的引用,不會(huì)影響到外部變量的引用
def demo(num,num_list): print("函數(shù)內(nèi)部") #在函數(shù)內(nèi)部,針對(duì)參數(shù)使用賦值語句,形參的引用發(fā)生了變化,但是實(shí)參的引用沒變 num=200 num_list=[1,2,3] print(num) print(num_list) print("函數(shù)內(nèi)部代碼完成") gl_num=99 gl_list=[2,3,4] demo(gl_num,gl_list) print(gl_num) print(gl_list)
運(yùn)行結(jié)果:
函數(shù)內(nèi)部
200
[1, 2, 3]
函數(shù)內(nèi)部代碼完成
99
[2, 3, 4]
如果傳遞的參數(shù)是可變類型,在函數(shù)內(nèi)部,使用方法修改了數(shù)據(jù)的內(nèi)容,同樣會(huì)影響到外部的數(shù)據(jù)
def demo(num_list): print("函數(shù)內(nèi)部") num_list.append([1,2,3]) print(num_list) print("函數(shù)內(nèi)部代碼完成") gl_list=[2,3,4] demo(gl_list) print(gl_list)
運(yùn)行結(jié)果:
函數(shù)內(nèi)部
[2, 3, 4, [1, 2, 3]]
函數(shù)內(nèi)部代碼完成
[2, 3, 4, [1, 2, 3]]
在python中,列表變量調(diào)用+=本質(zhì)上在執(zhí)行列表變量的extend方法,不會(huì)修改變量的引用
def demo(num,num_lst): print("函數(shù)開始") num+=num num_lst+=num_lst print(num) print(num_lst) print("函數(shù)結(jié)束") gl_num=9 gl_list=[1,2,3] demo(gl_num,gl_list) print(gl_num) print(gl_list)
運(yùn)行結(jié)果:
函數(shù)開始
18
[1, 2, 3, 1, 2, 3]
函數(shù)結(jié)束
9
[1, 2, 3, 1, 2, 3]
定義函數(shù)時(shí),可以給某個(gè)參數(shù)指定一個(gè)默認(rèn)值,具有默認(rèn)值的參數(shù)就叫做缺省參數(shù)
調(diào)用函數(shù)時(shí),如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時(shí)指定的參數(shù)默認(rèn)值
(1)指定函數(shù)的缺省參數(shù)
在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值
def print_info(name,gender=True): gender_text="男生" if not gender: gender_text="女生" print("%s 是 %s"%(name,gender_text))
(2) 提示
缺省參數(shù),需要使用最常見的值作為默認(rèn)值
如果一個(gè)參數(shù)的值不能確定,則不應(yīng)該設(shè)置默認(rèn)值,具體的數(shù)據(jù)在調(diào)用函數(shù)時(shí),由外界傳遞
(3) 缺省參數(shù)的注意事項(xiàng)
1.缺省參數(shù)的定義位置
必須保證帶有默認(rèn)值的缺省參數(shù)在參數(shù)列表的末尾
2.調(diào)用多個(gè)缺省參數(shù)的函數(shù)
在調(diào)用函數(shù)時(shí),如果有多個(gè)缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能夠知道參數(shù)的對(duì)應(yīng)關(guān)系
有時(shí)候可能需要一個(gè)函數(shù)能夠處理的參數(shù)個(gè)數(shù)是不確定的,這個(gè)時(shí)候,就可以使用多值參數(shù)
python中有兩種多值參數(shù):
參數(shù)名前增加一個(gè)* ,可以接收元組
參數(shù)名前增加兩個(gè)*,可以接受字典
一般在給多值參數(shù)命名時(shí),習(xí)慣使用以下兩個(gè)名字:
*args----存放元組參數(shù)
**kwargs—存放字典參數(shù)
def demo(*args,**kwargs): print(args) print(kwargs) demo(1,2,3,4,name="test1",age=14)
運(yùn)行結(jié)果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 14}
可以看到1,2,3,4被組成了一個(gè)元組
name=“test1”,age=14,被組成了一個(gè)字典
#計(jì)算任意個(gè)數(shù)之和 def sum_args(*args): sum=0 for n in args: sum+=n return sum result=sum_args(1,2,3,4,6) print(result)
在調(diào)用帶有多值參數(shù)的函數(shù)時(shí),如果希望:
將一個(gè)元組變量,直接傳遞給args
將一個(gè)字典變量,直接傳遞給kwargs
就可以使用拆包,簡化參數(shù)的傳遞,拆包的方式是:
在元組變量前,增加一個(gè)*
在字典變量前,增加兩個(gè)**
#如果不拆包,將gl_args,gl_kwargs組成一個(gè)元組 def demo(*args,**kwargs): print(args) print(kwargs) gl_args=(1,2,3,4) gl_kwargs={"name":"test1","age":12} demo(gl_args,gl_kwargs)
運(yùn)行結(jié)果:
((1, 2, 3, 4), {'name': 'test1', 'age': 12}) {}
如果不拆包,將gl_args,gl_kwargs組成一個(gè)元組,正確的傳遞方式應(yīng)該是:demo(1,2,3,4,name=“test”,“age”=12)
但是實(shí)參是元組和字典,需要將元素一個(gè)一個(gè)拆開,所以需要使用拆包
正確的使用方式:
def demo(*args,**kwargs): print(args) print(kwargs) gl_args=(1,2,3,4) gl_kwargs={"name":"test1","age":12} demo(*gl_args,**gl_kwargs)
運(yùn)行結(jié)果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 12}
關(guān)于“python的函數(shù)形參和返回值是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“python的函數(shù)形參和返回值是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。