9. Python函數

函數

函數能提高應用的模塊性,和代碼的重複利用率。定義一個函數比較簡單,但是需要遵循以下幾點規則:

  1. 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。
  2. 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。
  3. 函數內容以冒號起始,並且縮進。
  4. return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

定義函數格式

def 函數名(參數):
    函數體

參數主要有以下4種類型:必需參數、關鍵字參數、默認參數、不定長參數

必傳參數

必傳參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。如果我們定義一個加法函數,需要我們傳入2個參數,如果我們只傳入一個參數,就會出現語法錯誤如下代碼所示:

def add(a, b):
    return a + b

print(add(1))

上面代碼將輸出如下內容:

Traceback (most recent call last):
File "F:/blogApiTest/test4.py", line 4, in <module>
print(add(1))
TypeError: add() missing 1 required positional argument: 'b'

關鍵字參數

函數調用使用關鍵字參數來確定傳入的參數值。使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因爲 Python 解釋器能夠用參數名匹配參數值。如下代碼所示:

def person(name, age):
    print("名字: ", name)
    print("年齡: ", age)

# person
person(age=50, name="testDog")

我們必傳參數的順序是name、age,如果我們想要使用關鍵字參數,我們在調用person函數的時候,通過參數名賦值,改變參數傳入順序。

默認參數

調用函數時,如果沒有傳遞參數,則會使用默認參數。以下實例中如果沒有傳入 age 參數,則使用默認值,如下代碼所示:

def person(name, age=35):
    print("名字: ", name)
    print("年齡: ", age)

# person
person(age=50, name="testDog")
print("------------------------")
person(name="testDog")

上面代碼將輸出如下內容:

名字: testDog
年齡: 50
名字: testDog
年齡: 35

可變參數

加了星號 * 的參數會以元組(tuple)的形式導入,存放所有未命名的變量參數。
可變參數格式

def 函數名(*參數):
    函數體

我們現在有一個需求,定義一個加法函數,這個加法函數可以接收任意個參數然後進行相加,那麼如何去實現呢?這裏就要用到可變參數。如下代碼所示:

def add(*numbers):
    sum = 0
    for n in numbers:
        if type(n) == int or type(n) == float:
            sum = sum + n
        else:
            n = 0
            sum = sum + n
    return sum

print(add(1, 2, 'a'))

上面代碼將輸出如下內容:

3

上面代碼比較簡單,定義一個加法函數,參數類型是可變參數類型,我們已經知道可變參數格式是元組形式,所以我們讀取元組中每一個數據進行相加,如果元組中數據不是數字,我們把數據替換爲0。

歡迎關注微信公衆號:軟件測試汪。軟件測試交流羣:809111560

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