Python 程式札記 : 函式的基本觀念

2023/12/04閱讀時間約 4 分鐘

函式是 Python 程式設計中的非常重要的一環,能夠增強程式碼的可讀性和重用性。本文將介紹函式的基本觀念,包含函式的定義、調用、參數類型、返回值,以及在不同範圍內的行為。

函式定義

函式是一段可重用的程式碼,用於執行特定任務。在 Python 中,您可以使用 def 關鍵字來定義函式。以下是一個簡單的函式定義示例:

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

這個 greet 函式接受一個名為 name 的參數,並返回一個包含該參數的問候語。

函式調用

定義函式後,可在程式的任何地方調用。調用函式時,使用函式名和括號,並傳入所需參數。例如:

message = greet("Alice")
print(message) # 輸出: Hello, Alice!

此處 greet 函式被調用,並將 "Alice" 作為參數傳入。

函式參數和返回值

參數類型

函式可以接受多種類型的參數,包括:

1.必需參數

這些是在調用函式時必須提供的參數

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

result = add(5, 3)
print(result) # 輸出: 8

在這個 add 函式中,ab 是必需參數。

2.默認參數

函式定義時可以為參數提供默認值。如果在調用函式時未提供這些參數,則使用預設值。

def greet(name, message="Hello"):
return f"{message}, {name}!"

print(greet("Alice")) # 使用默認的 message
print(greet("Bob", "Hi")) # 提供一個不同的 message

這個 greet 函式有一個有一個必需參數 name 和一個默認參數 message

3.可變參數

可變參數允許您在函式調用時傳入任意數量的參數。這通常透過使用星號 (*) 實現。

def sum_numbers(*numbers):
total = 0
for number in numbers:
total += number
return total

print(sum_numbers(1, 2, 3)) # 輸出 6
print(sum_numbers(4, 5, 6, 7, 8)) # 輸出 30

sum_numbers 函式中,*numbers 表示函式可以接受任意數量的參數。

返回值

函式可以通過 return 語句返回值。如果未使用 return,函式默認返回 None

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

result = add(5, 3)
print(result) # 輸出: 8

這個 add 函式接受兩個參數並返回它們的和。

返回多個值

函式不僅可以返回單一值,還可以通過返回一個元組來返回多個值。例如,以下函式返回一組數字中的最小值和最大值:

def get_min_max(numbers):
return min(numbers), max(numbers)

min_val, max_val = get_min_max([1, 2, 3, 4, 5])
print(min_val, max_val) # 輸出 1 5

函式的範圍

Python 中變量的範圍指變量可被訪問的區域,分為全局範圍和局部範圍。

  • 全局範圍:函式外定義的變量,可在程式的任何地方訪問。
  • 局部範圍:函式內定義的變量,僅限於該函式內部。
x = "global"  # 全局變量

def my_func():
y = "local" # 局部變量
print(x)
print(y)

my_func()
print(x)
print(y) # 這將導致錯誤,因為 y 是局部變量

使用global關鍵字

如果需要在函式內修改全局變數,可以使用global關鍵字。

counter = 0

def increment():
global counter
counter += 1

increment()
print(counter) # 輸出 1

😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

51會員
82內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!