函數定義與調用:Python如何創建第一個函數?

爲什麼需要函數?

在編程中,函數就像一個“代碼工具包”。如果你需要重複執行某段代碼(比如打印問候語、計算兩個數的和),直接寫重複的代碼會讓程序變得冗長且難以維護。函數可以幫你把這段代碼“打包”起來,起個名字,之後直接調用這個名字就能執行,既節省時間又能保證代碼的一致性。

函數的基本語法

Python中定義函數非常簡單,核心是使用 def 關鍵字,語法結構如下:

def 函數名(參數1, 參數2, ...):
    """函數的功能說明(可選,但推薦)"""
    # 函數體:具體要執行的代碼(必須縮進)
    語句1
    語句2
    # 返回結果(可選)
    return 結果
  • def:定義函數的關鍵字,不能省略。
  • 函數名:自定義,需符合變量命名規則(字母、數字、下劃線,不能以數字開頭,不能用Python關鍵字如 iffor)。
  • 參數:括號內的變量(如 nameab),用於接收外部傳入的數據(如果不需要參數,括號也可留空)。
  • 函數體:冒號後的代碼塊,必須縮進(通常4個空格),這是Python區分代碼塊的關鍵。
  • return:返回函數執行結果(如果沒有 return,默認返回 None)。

定義你的第一個函數

示例1:最簡單的“無參數、無返回值”函數

比如,定義一個函數打印一句問候語:

# 定義函數
def say_hello():
    # 函數體:縮進4個空格
    print("Hello, Python!")
    print("這是我的第一個函數~")

調用函數:直接寫函數名加括號(即使無參數):

# 調用函數
say_hello()

輸出結果

Hello, Python!
這是我的第一個函數~

示例2:帶參數和返回值的函數

定義一個函數計算兩個數的和:

# 定義函數,參數a和b
def add_numbers(a, b):
    result = a + b  # 計算兩數之和
    return result   # 返回結果

調用函數:需要傳入兩個參數(位置對應):

# 調用函數並接收返回值
sum_result = add_numbers(3, 5)
print("3 + 5 =", sum_result)  # 輸出:3 + 5 = 8

函數調用的關鍵點

  1. 參數傳遞:必須按定義時的順序傳遞參數(位置參數),也可以用 參數名=值 的形式傳遞(關鍵字參數)。
   def greet(name, message):
       print(f"{message}, {name}!")

   greet("Alice", "Good morning")  # 位置參數
   greet(message="Good evening", name="Bob")  # 關鍵字參數(順序可換)
  1. 返回值處理:函數的返回值需要用變量接收,否則無法使用。
   def multiply(x, y):
       return x * y

   product = multiply(4, 5)  # 必須接收返回值
   print(product)  # 輸出:20
  1. 無返回值:如果函數沒有 return,調用後不會得到結果,但仍會執行函數體。
   def print_hi():
       print("Hi there!")

   result = print_hi()  # 執行後無返回值,result = None
   print(result)  # 輸出:None

常見問題與注意事項

  1. 縮進錯誤:函數體必須縮進(4個空格),否則Python會報錯。
   def add(a, b):
   print(a + b)  # 錯誤!沒有縮進,會報 IndentationError
  1. 函數名重複:如果多次定義同名函數,後面的會覆蓋前面的,需注意命名唯一性。

  2. 參數不匹配:調用時參數數量必須與定義時一致(除非有默認參數)。

   def greet(name):
       print(f"Hello, {name}")

   greet("Charlie")  # 正確(1個參數)
   greet("Charlie", "Bob")  # 錯誤(2個參數,定義時只有1個)

小練習:動手寫一個函數

嘗試定義一個函數 area_of_rectangle,接收長和寬作爲參數,返回矩形面積。然後調用函數驗證結果:

# 定義函數
def area_of_rectangle(length, width):
    return length * width

# 調用函數,傳入參數
length = 5
width = 3
area = area_of_rectangle(length, width)
print(f"矩形面積:{area}")  # 預期輸出:15

總結

函數是Python代碼複用的核心工具,掌握定義和調用函數後,你可以把複雜邏輯拆分成獨立模塊,讓代碼更簡潔、易維護。後續還可以學習參數默認值、關鍵字參數、可變參數等進階用法,但打好基礎(理解縮進、參數、返回值)是關鍵哦!

小夜