函數
函數能提高應用的模塊性,和代碼的重複利用率。定義一個函數比較簡單,但是需要遵循以下幾點規則:
- 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。
- 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。
- 函數內容以冒號起始,並且縮進。
- 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