函數是組織代碼的非常有效的方式,有了函數,我們就可以編寫大規模的項目。可以說,函數是組織代碼的最小單元。 Python函數的定義 函數是代碼封裝的一種手段,函數中包含一段可以重覆執行的代碼,在需要用到這些代碼時,只需要調用函數,就會運行函數中的代碼。 python 函數這麼定義: def 函數名稱( ...
函數是組織代碼的非常有效的方式,有了函數,我們就可以編寫大規模的項目。可以說,函數是組織代碼的最小單元。
Python函數的定義
函數是代碼封裝的一種手段,函數中包含一段可以重覆執行的代碼,在需要用到這些代碼時,只需要調用函數,就會運行函數中的代碼。
python 函數這麼定義:
def 函數名稱(參數1, 參數2):
函數體(要運行的代碼)
比如一個很簡單的函數定義:
def add(a, b):
return a + b
現在我們舉個例子說明函數的作用。
print('打開高級車門')
print('開發動機')
print('安全帶')
print('踩油門')
print('掌握方向')
如果要開很多次車,那麼每次都需要敲相同的 5 行代碼,這樣會造成幾個問題:
很容易編寫不同的代碼,或者代碼出現錯誤 代碼冗餘,可讀性不強 不容易維護,當需要修改某個步驟時,要修改多處。
Python函數的調用
現在我們可以把上述代碼封裝在函數中,當需要運行這些代碼時,調用函數就可以了,這樣減少了很多複製粘貼或者手工編寫多行代碼的步驟,函數的名稱也表明瞭代碼的作用,當需要修改部分邏輯,只需要修改函數體就可以了。
def run_car():
print('打開高級車門')
print('發動發動機')
print('繫上安全帶')
print('踩油門')
print('掌握方向')
run_car()
# 其他代碼
run_car()
Python函數的返回值
return 表示當函數執行完之後,想讓函數外面的程式得到函數執行的結果, return 的值可以任意的數據類型。
def add(a, b): return a + b
result = add(3,4)
print(result)
函數體當中的代碼, 遇到 return 會終止運行。 函數的返回結果可以是任意類型,包括 None 當函數體當中沒有 return ,預設返回 None
Python函數可以返回多個值, 只需要在多個值之間加上逗號,得到的是元組類型。
def add(a, b):
return a, b
參數的四種類型
return 表示函數返回給外部的值,而參數表示函數從外部接收的值。在函數定義時候的參數叫做形式參數,它其實就是一個變數名稱,在函數調用時候的參數叫做實際參數,相當於給變數賦值。
def get_coffee(suger):
if suger > 100:
return '甜咖啡'
elif suger < 1:
return '美式'
else:
return '莫名其妙的咖啡'
result = get_coffee(100)
print(result)
註意,形式參數的個數和實際參數的個數要一樣,而且順序要一致,這種方式叫做位置參數。(和領導吃飯做位置)如果形式參數和實際參數的個數不一致,會導致程式無法分別賦值:
def add(a, b):
c = a + b - 1
return c
add(5, 7, 8) # NO
關鍵字參數:在調用函數的時候,做一個關鍵字標記,以防傳參錯誤,造成損失。主要是當參數很多的情況,你記不清順序,關鍵字去標識數據的意思。
預設參數:在函數定義的時候,給某個變數直接賦值,成為預設值。 就是使用預設值直接賦值,在調用函數的時候,可以少傳參數。關鍵字參數,預設參數也好,都必須放到位置參數的後面。
def add(a, b=0):
c = a + b - 1
return c
add(a=4, b=6)
add(3)
自動化測試場景:添加多個數據,運行多個用例
def write_case(number):
for _ in range(number):
username = input("請輸入用戶名:")
passwd = input("請輸入密碼:")
age = input("請輸入年齡:")
user = dict()
user.update(username=username,
passwd=passwd,
age=age)
yield user
def run(case):
print(f"運行用例-用戶名{case['username']}")
cases = write_case(2)
for case in cases:
run(case)
作者:九柄
工作:軟體測試工程師
領資料或者技術交流務必備註博客園
歡迎點贊和三連。