python之函數的參數


1.位置參數:

例如計算一個整數的平方:

def power(x)
    return x * x

顯然參數x就是一個位置參數,如果要是計算5*5*5..............*5 ,這個函數就太麻煩了,我們可以再定義下面這個函數來解決:

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
    

修改后的函數,有兩個位置參數xn ,調用函數時,傳入的兩個值按照位置順序依次賦給參數xn

>>>power(5,3)
125

2.默認參數

假設我們總是想要求一個數的立方和,這時候我們可以把函數中的第二個位置參數設置為默認值3

ps:定義默認參數要牢記一點:默認參數必須指向不變對象!

def power(x, n=3):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
>>>power(2)
8

3.可變參數【以從下面這個例子學習】

例:計算計算a2 + b2 + c2 + ……

方法一:通過list或tuple傳參數

顯然這樣調用的時候,總是需要構造一個list或tuple比較麻煩,為此引入可變參數的概念,從下面這個例子體會:

方法二:定義函數時把參數定義為可變參數【其實也就是在可變參數前面加個*號】

PS:可以在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去:

4.關鍵字參數【例子學習】

可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple。而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict:

運行結果:

name: Michael age: 30 other: {}
name: ttwang age: 23 other: {'city': 'Hangzhou'}
name: Jane age: 22 other: {'gender': 'M', 'job': 'Engineer'}

關鍵詞參數有什么用:它可以擴展函數的功能。比如,在person函數里,我們保證能接收到nameage這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到。試想你正在做一個用戶注冊的功能,除了用戶名和年齡是必填項外,其他都是可選項,利用關鍵字參數來定義這個函數就能滿足注冊的需求。

和可變參數一樣,也可以先組裝出一個dict,然后,把該dict轉換為關鍵字參數傳進去【簡單調用如下】:

 5.命名關鍵字參數

1.如果想要限制關鍵字參數的名字,需要用到命名關鍵詞參數,命名方式和調用方式,見下面的例子:

2.注意: 調用時必須傳入參數名city和job否則報錯:

報錯信息:

由於調用時缺少參數名cityjob,Python解釋器把這4個參數均視為位置參數,但person()函數僅接受2個位置參數。

3.命名關鍵字參數可以直接給出默認值,調用時就可以不用寫入了:

#函數定義,直接給出命名關鍵字參數的默認值
def person(name, age, *, city='Beijing', job):
    print(name, age, city, job)

#函數調用形式:
#由於命名關鍵字參數city具有默認值,調用時,可不傳入city參數:
>>> person('Jack', 24, job='Engineer')
Jack 24 Beijing Engineer

4.參數組合

在Python中定義函數,可以用必選參數、默認參數、可變參數、關鍵字參數和命名關鍵字參數,這5種參數都可以組合使用。但是請注意,參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。【詳見】

5.小結【轉自廖雪峰官方網站】

 6.練習【求一個或者兩個以上數的乘積】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM