每一個編程語言中(諸如:Java、C++、C)等都有函數的,Python也不例外python
函數的主要做用有哪些呢?編程
一、將程序的功能進行模塊化,功能模塊清晰編程語言
二、減小重複代碼的工做量ide
三、便於閱讀及維護、調試等模塊化
1、函數的結束及返回值函數
# -*- coding: utf-8 -*- def f1(): print("This is Fun()") return #函數調用結束 print("-- End 1--") print(" Print 2") return "--- End 2 --" f1() print(type(f1()))
運行結果:spa
This is Fun()調試
This is Fun()orm
<class 'NoneType'>utf-8
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})
<class 'tuple'>
此時,函數的返回值是一個元組
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
3、函數的關鍵字參數
對於上面的例子,其函數是位置位置參數,位置一一對應,不能多也不能少
下面的這個這個例子跟上面的有點不同,在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
4、函數的可變長參數
對於位置參數而言,形參及實參須要一一對應,如有時不肯定須要哪些參數或爲了往後能很好的擴展,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'}