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

📘 本集重點小抄

vocus|新世代的創作平台



🌟 小結

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

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

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

留言
avatar-img
Dolly的奇妙育兒之旅
20會員
132內容數
一串感恩又心累、感謝又荒謬的心路歷程
2025/07/09
📌 本集目標:學會如何建立、查詢、修改與走訪「Key值」結構,處理生活中的資料對應問題(如記帳、點餐、聯絡人查詢) 🔹 為什麼要學字典? 要查某個人的電話號碼 想記錄今天花了多少錢 把一個商品名稱對應到它的價格 這些「名稱 ➜ 對應資料」的關係,在 Python裡用字典最適合!
Thumbnail
2025/07/09
📌 本集目標:學會如何建立、查詢、修改與走訪「Key值」結構,處理生活中的資料對應問題(如記帳、點餐、聯絡人查詢) 🔹 為什麼要學字典? 要查某個人的電話號碼 想記錄今天花了多少錢 把一個商品名稱對應到它的價格 這些「名稱 ➜ 對應資料」的關係,在 Python裡用字典最適合!
Thumbnail
2025/07/02
對孩子而言,玩不是浪費時間,而是最自然的學習方式。根據兒童發展心理學者皮亞傑及延伸理論,兒童在成長過程中,遊戲行為會隨認知與社會性發展出現明確的層次變化,反映其身體、語言、情緒與邏輯能力的發展。
Thumbnail
2025/07/02
對孩子而言,玩不是浪費時間,而是最自然的學習方式。根據兒童發展心理學者皮亞傑及延伸理論,兒童在成長過程中,遊戲行為會隨認知與社會性發展出現明確的層次變化,反映其身體、語言、情緒與邏輯能力的發展。
Thumbnail
2025/07/01
寫程式不只是在處理資料,更是要根據「條件」決定下一步,或重複做某些事。本講義將介紹流程控制語句(if、for、while)以及邏輯運算(and、or、not),讓你的程式不再是一條直線,而能根據情境靈活反應。 ❓ 1. if 判斷式 ➤ 用法: x = 10 if x > 5:
Thumbnail
2025/07/01
寫程式不只是在處理資料,更是要根據「條件」決定下一步,或重複做某些事。本講義將介紹流程控制語句(if、for、while)以及邏輯運算(and、or、not),讓你的程式不再是一條直線,而能根據情境靈活反應。 ❓ 1. if 判斷式 ➤ 用法: x = 10 if x > 5:
Thumbnail
看更多
你可能也想看
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
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 定義靜態方法,全部整理到一個類別去,想像成是一個工具箱的概念,工具箱就是類別,靜態方法就像是裡面的工具一樣。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News