Python函數之函數的創建、返回值及參數——第六天

1、函數是用來幹嘛的?
函數是用來被調用的,因爲函數裏面包含各種方法,實際上是使用函數中的各個方法。

2、爲什麼要寫函數,使用函數的好處?
(1)代碼重用
(2)保持一致性,易維護
(3)可擴展性

3、函數的創建

def test(x):
    "The function definitions"
    y=2*x+6
    return y
print(test)
a=test(3)
print(a)

輸出結果:
<function test at 0x00E8B6A0>        #函數的內存地址
12

說明:
def——定義函數的關鍵字
test——函數名,自己起的
“”——文檔描述(非必要,但是強烈建議給你的函數添加描述信息)
()內的x——是參數,參數可以有多個,也可以沒有
y=2*x+6——泛指代碼塊或程序處理邏輯
return——定義返回值
test()——函數名()就是運行,執行該程序
若有兩個重名的函數,以第二個爲準,因爲Python語言是從上到下執行的,後面的會覆蓋前面的。

4、返回值總結:
返回值數爲0,則返回None
返回值數爲1,則返回當前值
返回值數爲2,則返回一個元組,所有的值在元組中體現

5、函數的參數

(1)形參:形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的單元,因此,形參只在函數內部有效,函數調用結束返回主調用函數後則不能再使用該形參變量。
(2)實參:實參可以是常量、變量、表達式、函數等無論實參是何種類型的量,在進行函數調用時,它們必須有確定的值以便把這些值傳給形參。
(3)關係:實參與形參的位置是一 一對應的,即位置參數;還可以用關鍵字參數表示,即指定輸出一個等式。
(4)位置參數必須在關鍵字參數左邊,否則報錯,建議最好不要混合使用。
(5)位置參數必須一 一對應,多了不行,少了也不行。

示例如下:

def test(x,y):         #形參
    z = x**y
    return z

P = test(1,2)          #位置參數,默認x=1,y=2
print(P)

w = test(2,3)          #實參   
print(w)

O = test(y=2,x=1)      #關鍵字參數
print(O)

#輸出結果:
1
8
1

(6)函數的默認參數
即形參是默認選擇的,就比如安裝軟件時的默認選項,例子如下,其中,參數帶了屬性就交租默認參數。

def test(function1=True,function2=False,function3=True):
    pass

(7)參數組
參數組包含:元組形式(*args)、字典形式(**args),示例如下

def test(x,*args):
    print(x)
    print(args)
test(1,2,3,4,5,6)
test(666,[1,2,3,4])
test(888,{"name":"zhm"})
test(1)
#輸出結果:
1
(2, 3, 4, 5, 6)

666
([1, 2, 3, 4],)

888
({'name': 'zhm'},)

1
()
兩個一起使用:

def test(x,*args,**kwargs):
    print(x)
    print(args)
    print(kwargs)
test(1,2,3,4,5,6,y=5,z=0)

#輸出結果:
1
(2, 3, 4, 5, 6)
{'y': 5, 'z': 0}

運行時加*,相當於遍歷一遍:

def test(x,*args):
    print(x)
    print(args)
test(1,[2,3,4,5,6])
test(2,*[2,3,4,5,6])

#輸出結果:
1
([2, 3, 4, 5, 6],)

2
(2, 3, 4, 5, 6)

注意
(1)第一個值固定後,剩下的值都放進*args裏,組成一個元組,無論剩下的值是數字、
字符串、列表、還是字典,都不例外。
(2)第二個值裏允許爲空,則只輸出一個空元組。
(3)**kwargs同理,只是組成的是字典。
(4)一個參數不能傳兩個值,也會報錯。
(5)可以兩個同時使用,如上,可以用來接收任何形式的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章