Python 新手學習筆記 第5集:函式與參數

更新於 發佈於 閱讀時間約 6 分鐘
你寫過同一段程式超過兩次嗎?那就代表你該學會函式了。
函式讓你的程式更「像大腦」,會分工、能組裝,邏輯清楚、重用率高。
今天我們就來學這個超實用的技能!

🔸 1. 函式是什麼?為什麼要用?

如果你開早餐店,蛋餅怎麼做?加蛋、翻面、切塊、裝袋……

寫程式也是:一段常用的流程,我們希望可以「取個名字」,以後一行就呼叫整段邏輯,這就是函式(function)!



🔸 2. 定義一個函式:用 def

def hello():
print('Hello, Python!')

hello()

🔽 輸出:

Hello, Python!

🔸 3. 函式也能有「參數」

def greet(name):
print(f"Hi {name},今天過得好嗎?")

greet("Joe")

🔽 輸出:

Hi Joe,今天過得好嗎?

🔸 4. 回傳值:用 return 把結果帶出來

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

x = add(3, 5)
print(x)

🔽 輸出:

8

📌 return 是把東西「丟回」給呼叫者,不輸出也不印,但你可以存下來做進一步運算。


🔸 5. 必要參數 vs 預設參數:差在哪?

必要參數 vs 預設參數

必要參數 vs 預設參數


❗ 錯誤寫法範例(預設參數放前面會報錯)

def wrong(drink="紅茶", food):  # ❌
print(food, drink)

🔴 錯誤訊息:

SyntaxError: non-default argument follows default argument

🔸 6. 混合位置與關鍵字參數

def order(meal, drink="紅茶"):
print(f"你點了 {meal} 和 {drink}")

order("蛋餅")
order("漢堡", drink="奶茶")

🔽 輸出:

你點了 蛋餅 和 紅茶
你點了 漢堡 和 奶茶

🔸 7. 變動長度參數:用 *args

def avg(name, *grades):
if grades:
score = sum(grades) // len(grades)
print(f"{name} 的平均是:{score}")
else:
print(f"{name} 沒有成績")

avg("Nick", 100, 50, 20)
avg("Jerry")

🔽 輸出:

Nick 的平均是:56
Jerry 沒有成績

📌 *grades 會變成一個 tuple,可接收彈性長度的資料。


🔸 8. 想保護原本的 list,請用 .copy()

在 Python 中,list 是「可變的(mutable)」。

❌ 沒有 copy,會改到原資料:

def add10(scores):
for i in range(len(scores)):
scores[i] += 10

grades = [60, 70, 80]
add10(grades)
print(grades)

🔽 輸出:

[70, 80, 90]

✅ 用 .copy() 傳副本,保護原資料:

def add10(scores):
for i in range(len(scores)):
scores[i] += 10
print("函式內:", scores)

grades = [60, 70, 80]
add10(grades.copy())
print("函式外:", grades)

🔽 輸出:

函式內: [70, 80, 90]
函式外: [60, 70, 80]

🔸 9. 實用範例:計算 BMI

def get_bmi(tall, weight):
bmi_value = weight / (tall * tall)
return round(bmi_value, 2)

bmi = get_bmi(1.72, 80)
print(bmi)

🔽 輸出:

27.04

🔸 10. 延伸挑戰題

✅ 請寫一個函式 max(a, b, c),回傳三個數中最大值

def max(a, b, c):
return a if a > b and a > c else (b if b > c else c)

print(max(3, 2, 1)) # 👉 3
print(max(5, 8, 2)) # 👉 8

📘 本集重點小抄

raw-image



🌟 小結

函式就像是一段你自己命名的小機器,能重複使用、降低錯誤、加速開發。

掌握參數的用法與傳值邏輯,就能寫出靈活又乾淨的程式邏輯。

下一集,我們會進入第 6 集 —— lambda 函式與排序應用,教你怎麼快速排序你的人生選項 ✨

留言
avatar-img
留言分享你的想法!
avatar-img
Dolly的奇妙育兒之旅
12會員
94內容數
Dolly 是個家有亞斯哥和過動妹的媽媽 為了記得那些奇妙的育兒真實故事 決定把我(Dolly)和大亞(爸爸)、端端(亞斯哥)和波妞(過動妹)那些日子發生的事寫成部落格 一串感恩又心累、感謝又荒謬的心路歷程紀錄
2025/07/09
📌 本集目標:學會如何建立、查詢、修改與走訪「Key值」結構,處理生活中的資料對應問題(如記帳、點餐、聯絡人查詢) 🔹 為什麼要學字典? 要查某個人的電話號碼 想記錄今天花了多少錢 把一個商品名稱對應到它的價格 這些「名稱 ➜ 對應資料」的關係,在 Python裡用字典最適合!
2025/07/09
📌 本集目標:學會如何建立、查詢、修改與走訪「Key值」結構,處理生活中的資料對應問題(如記帳、點餐、聯絡人查詢) 🔹 為什麼要學字典? 要查某個人的電話號碼 想記錄今天花了多少錢 把一個商品名稱對應到它的價格 這些「名稱 ➜ 對應資料」的關係,在 Python裡用字典最適合!
2025/07/02
對孩子而言,玩不是浪費時間,而是最自然的學習方式。根據兒童發展心理學者皮亞傑及延伸理論,兒童在成長過程中,遊戲行為會隨認知與社會性發展出現明確的層次變化,反映其身體、語言、情緒與邏輯能力的發展。
Thumbnail
2025/07/02
對孩子而言,玩不是浪費時間,而是最自然的學習方式。根據兒童發展心理學者皮亞傑及延伸理論,兒童在成長過程中,遊戲行為會隨認知與社會性發展出現明確的層次變化,反映其身體、語言、情緒與邏輯能力的發展。
Thumbnail
2025/07/01
寫程式不只是在處理資料,更是要根據「條件」決定下一步,或重複做某些事。本講義將介紹流程控制語句(if、for、while)以及邏輯運算(and、or、not),讓你的程式不再是一條直線,而能根據情境靈活反應。 ❓ 1. if 判斷式 ➤ 用法: x = 10 if x > 5:
2025/07/01
寫程式不只是在處理資料,更是要根據「條件」決定下一步,或重複做某些事。本講義將介紹流程控制語句(if、for、while)以及邏輯運算(and、or、not),讓你的程式不再是一條直線,而能根據情境靈活反應。 ❓ 1. if 判斷式 ➤ 用法: x = 10 if x > 5:
看更多
你可能也想看
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
先前學到自定函式的使用方法,那如果在一個很龐大的程式架構中發散了一推自定函式,有沒有辦法可以整理一下,讓程式結構整齊又簡潔呢? 可以使用裝飾器staticmethod 定義靜態方法,全部整理到一個類別去,想像成是一個工具箱的概念,工具箱就是類別,靜態方法就像是裡面的工具一樣。
Thumbnail
先前學到自定函式的使用方法,那如果在一個很龐大的程式架構中發散了一推自定函式,有沒有辦法可以整理一下,讓程式結構整齊又簡潔呢? 可以使用裝飾器staticmethod 定義靜態方法,全部整理到一個類別去,想像成是一個工具箱的概念,工具箱就是類別,靜態方法就像是裡面的工具一樣。
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News