Home >> Blog >> 如何編寫 Python function

如何編寫 function python

Python function是一組程式碼。要在function中運行程式碼,您必須調用該function。定義function後,可以從任何地方調用function。function可以使用 return 語句返回一個值。

function是所有程式語言的共同特徵。它們允許SEO搜尋引擎優化開發人員編寫執行特定任務的程式碼塊。一個function可以在開發人員的程式碼中執行任意多次。

function允許開發人員減少程式碼中的重複,因為他們可以在一個程式中多次執行相同的程式碼塊。

本教學將通過範例討論 Python function的基礎知識、如何創建和調用function以及如何使用參數。閱讀完本教學後,您將成為使用 Python 編寫function的專家。

什麼是 Python function?

function是僅在調用時運行的程式碼塊。Python function使用 return 語句返回一個值,如果指定了一個值。function聲明後,可以在任何地方調用function。

function本身什麼也不做。但是,當你需要使用一個function時,你可以調用它,function內的程式碼就會被執行。

在 Python 中,有兩種類型的function:用戶定義的和內置的。內置function是這樣的function:

  • print(),將語句列印到控制台
  • Python len(),計算列表的長度
  • Python str(),將值轉換為字符串

用戶定義的function是由您(開發人員)編寫的可重用程式碼塊。這些程式碼塊使您可以更有效地組織程式碼。這很重要,因為您的程式碼越有條理,就越容易維護。

如何定義 Python function

定義function是指創建function。這涉及編寫一段程式碼,我們可以通過引用我們的function名稱來調用它。function由 def 關鍵字表示,後跟function名和一組括號。

對於這個例子,我們將創建一個簡單的function來列印語句It's Monday!到控制台。為此,我們可以使用以下程式碼:

def print_monday():
print("It's Monday!")

當我們運行我們的程式碼時,什麼也沒有發生。這是因為,為了讓我們的function運行,我們需要調用它。為此,我們可以像這樣引用我們的function名稱:

def print_monday():
print("It's Monday!")

print_monday()

我們的程式碼返回:

It's Monday!

讓我們分解一下我們function的主要組件:

  • def關鍵字用於表示我們要創建一個function。
  • print_monday是我們function的名稱。這必須是唯一的。
  • ()是我們的參數將被存儲的地方。我們稍後會談到這個。
  • :標記我們function頭的結束。

現在,我們的function可以變得像我們想要的那樣複雜。假設我們要編寫一個程式,告訴用戶他們的名字中有多少個字母。我們可以使用以下程式碼來做到這一點:

def calculate_name_length():
name = str(input("What is your name? "))
name_length = len(name)
print("The length of your name is ", name_length, " letters.")

calculateNameLength()

我們定義了一個名為calculate_name_length()的function。在function體中,我們詢問用戶姓名,然後使用len()計算用戶姓名的長度。最後,我們在控制台列印“The length of your name is [length] letters.”,其中length是用戶名的長度。

function參數和參數

在我們的第一個範例中,我們在function中使用了空括號。這意味著我們的function不接受任何參數。

參數允許您將資訊傳遞到function可以讀取的function中。function的參數包含在function名稱後面的括號內。

讓我們通過一個基本範例來說明參數是如何工作的。

Python 參數和參數範例

假設我們要創建一個將兩個數字相乘的程式。我們可以使用以下程式碼來做到這一點:

def multiply_numbers(number1, number2):
answer = number1 * number2
print(number1, " x ", number2, " = ", answer)

multiply_numbers(5, 10)
multiply_numbers(15, 2)

我們的 Python 程式返回:

5 x 10 = 50
15 x 2 = 30

首先,我們定義了一個名為multiply_numbers的function。我們的程式碼接受的function中的參數名稱是:number1 和 number2。我們在定義參數列表的括號之間定義這些。

接下來,我們聲明一個名為“answer”的Python 變量,它將 number1 和 number2 的值相乘。然後,我們將一條語句列印到控制台,並寫出完整的數學總和,然後是數學問題的答案。

我們已經指定了必需的參數。這是因為我們沒有為每個參數設置默認值。我們必須指定與參數列表中相同的參數數量,否則 Python 解釋器將返回錯誤。

在程式快結束時,我們調用了multiply_numbersfunction兩次。

首先,我們指定參數 5 和 10。我們的程式將這些值相乘以計算 50。然後,我們的程式將“5 x 10 = 50”列印到控制台。接下來,我們指定參數 15 和 2,我們的程式會相乘。然後,我們的程式將“15 x 2 = 30”列印到控制台。

默認情況下,您在function中傳遞的參數的順序是程式處理它們的順序。當我們運行“multiply_numbers(5, 10)”時,“number1”的值變為 5。“number2”的值變為 10。我們將在“關鍵字參數”部分討論如何覆蓋它。

關參數的更多資訊,請查看我們的Python 可選參數教學。

注意:參數與參數

術語參數和參數指的是同一件事:將資訊傳遞給function。但是,兩者之間存在細微差別。

參數是function括號內的變量。參數是在調用function時傳遞給function的值。因此,在我們的最後一個範例中,“number1”和“number2”是參數,5 和 10 是參數。

功能關鍵字參數

正如我們所討論的,傳遞參數的順序就是程式處理它們的順序。因此,第一個參數將分配給第一個參數,依此類推。但是,有一種方法可以覆蓋此規則。

您可以在function調用中使用關鍵字參數,這允許您根據參數名稱分配參數的值。使用關鍵字參數允許您以任何您想要的順序指定關鍵字的值。

關鍵字參數之所以有效,是因為您將使用關鍵字將值與參數匹配,而不是依賴於參數的順序來傳遞值。

假設我們正在創建一個程式,該程式列印出已註冊郵件列表的人的姓名和電子郵件地址。我們可以使用以下程式碼編寫這個程式:

def print_info(name, email):
print("Name: ", name)
print("Email: ", email)

print_info(email="alex.hammond@gmail.com", name="Alex Hammond")

我們的程式碼返回:

Name: Alex Hammond
Email: alex.hammond@gmail.com

我們聲明一個接受兩個參數的function:name 和 email。我們將“ Name:”列印到控制台,然後是name參數中的值。然後,我們將“_Email:”_列印到控制台,然後是email參數中的值。我們使用Python print() 語句將這些值列印到控制台。

接下來,我們調用我們的function並指定兩個參數。email參數等於alex.hammond@gmail.com ,name參數等於Alex Hammond。

在我們的程式碼中,我們使用等號 (=) 分隔參數的名稱和它的值。這意味著我們不再需要按照參數出現的順序(姓名、電子郵件)來指定參數。我們可以使用任何我們想要的順序。

默認參數值

此外,您可以為function中的參數指定默認參數值。

假設我們希望email的值默認為default@gmail.com。我們可以使用以下程式碼實現這一點:

def print_info(name, email="default@gmail.com"):
print("Name: ", name)
print("Email: ", email)

print_info("Alex Hammond")

我們的 Python 程式碼返回:

Name: Alex Hammond
Email: default@gmail.com

我們將email參數的默認值設置為default@gmail.com。當我們運行我們的程式碼並調用print_info()function時,我們不需要為email參數指定一個值。在這個例子中,當我們執行print_info()時,我們只指定一個參數:用戶名。

將值返回到主程式

到目前為止,我們已經討論瞭如何將值傳遞給function。但是function也可以用於將值傳遞給程式的其餘部分。

eturn語句退出function並允許您將值傳遞回主程式。如果您使用沒有參數的return語句,該function將返回值None。

假設我們要創建一個將兩個數字相乘的程式。然後,當這兩個數字相乘後,我們希望將它們返回到我們的主程式。我們可以使用以下程式碼來做到這一點:

def multiply_numbers(number1, number2):
answer = number1 * number2
return answer

ans = multiply_numbers(5, 6)
print(ans)

我們的程式碼返回:

30

首先,我們定義了一個名為multiply_numbers的function。該function接受兩個參數:number1 和 number2。調用此function時,“number1”和“number2”的值相乘。然後,我們使用return語句將相乘後的數字傳遞給主程式。

我們調用multiply_numbers()function並指定兩個參數:5 和 6。請注意,我們還將function的結果分配給變量“ans”。當這行程式碼運行時,我們的function被調用,它的結果被賦值給“ans”。然後,我們的程式碼列印出“ans”的值,在本例中為 30。

Python return語句阻止function執行,即使它沒有返回值。下面是這個行為的一個例子:

def run_ten():
for i in range(0, 10):
if i == 4:
return
print("Finished")

run_ten()

我們的程式碼不會向控制台列印任何內容。儘管我們的程式碼中有一個“print(“Finished”)”語句,但它並沒有運行。

這是因為,當我們的 for 循環執行四次(當i等於 4 時)時,執行了 return 語句。這會導致我們的function停止執行並停止我們的循環運行。

在我們的function停止運行後,我們主程式中的程式碼將繼續運行。

結論

Python function是執行特定操作的程式碼塊。function可以在程式中任意多次調用。這意味著您可以多次運行相同的程式碼塊,而無需重複您的程式碼。

function允許您減少程式碼中的重複,從而使您和其他編碼人員都更容易閱讀您的程式。

對於一個挑戰,編寫一個function,將 1 到 10 之間的每個數字列印到控制台(包括 10)。這個function應該包含一個 for 循環。功能完成後,您應該列印“完成!” 到控制台。在程式結束時調用您的function一次。

輸出應該是:

1
2
3
4
5
6
7
8
9
10

本教學討論了 Python 中function的基礎知識,如何編寫和調用function,以及如何使用實參和參數。現在您已經準備好開始像專家一樣用 Python 編寫function了!

有關頂級 Python 課程、書籍和學習資源的建議,請查看我們全面的如何學習 Python 指南。