每個編程語言中(諸如:Java、C++、C)等都有函數的,Python也不例外
函數的主要作用有哪些呢?
1、將程序的功能進行模塊化,功能模塊清晰
2、減少重復代碼的工作量
3、便于閱讀及維護、調試等
一、函數的結束及返回值
#?-*-?coding:?utf-8?-*- def?f1(): ????print("This?is?Fun()") ????return??#函數調用結束 ????print("--?End?1--") ????print("?Print?2") ????return?"---?End?2??--" f1() print(type(f1()))
運行結果:
This is Fun()
This is Fun()
1.函數在遇到return語句時,此時函數調用已經結束
2.函數是有返回值的,只不過這里是None類型
再看下面的例子:
def?mth_return(): ????return?1,"String",["a","b"],{"K1":1,"Key2":2} print(mth_return()) print(type(mth_return()))
運行結果:
(1, 'String', ['a', 'b'], {'K1': 1, 'Key2': 2})
此時,函數的返回值是一個元組
二、函數的參數
? 對于函數,其函數名后面的變量通常稱為:形參,調用函數時,提供的值稱為:實參
#?-*-?coding:?utf-8?-*- def?method(name,age):??#name,age是形參 ????print(name,age) def?method2(name,age?="18"):??#提供默認參數值 ????print(name,age) n?=?"Mr.James" method(n,38)??#n是實參 method2("Zhang") method2("Mr.Zhang",28)
運行結果:
Mr.James 38
Zhang 18
Mr.Zhang 28
三、函數的關鍵字參數
? ?對于上面的例子,其函數是位置位置參數,位置一一對應,不能多也不能少
? ?下面的這個這個例子跟上面的有點不一樣,在Python中稱之為:關鍵字參數
#?-*-?coding:?utf-8?-*- def?test(name="James",age=29): ????print("name:{},{}".format(name,age)) test(age=20,name="Mr.Zhang")
運行結果:
name:Mr.Zhang,20
四、函數的可變長參數
?對于位置參數而言,形參及實參需要一一對應,若有時不確定需要哪些參數或為了日后能很好的擴展,Python中提供了可變長參數
用法:def function(self,*args,**kwargs)
具體例子:
例子1:
#?coding?=?utf-8 def?test(name,*args): ????print(name) ????print(args) ????print(args[3]) test("Mr.Zhang",1,2,3,["a","b"],{"Key1":1,"Key2":2})??#?*args?返回的是一個元組
運行結果:
Mr.Zhang
(1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})
['a', 'b']
例子2:
#?coding?=?utf-8 def?test2(name,*args,**kwargs):??#?**kwargs返回的是一個字典 ????print(name) ????print(args) ????print(kwargs) test2("Mr.Zhang",1,2,3,['a','b'],{"Key1":1,"Key2":2},age=18,sex="F")
運行結果:
Mr.Zhang
(1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})
{'age': 18, 'sex': 'F'}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
