歡迎來到程式設計結構的世界!

你好!歡迎踏入 H2 Computing 學習旅程中最令人興奮的部分之一。你可以把程式設計結構(Programming Constructs)想像成數位世界的「樂高積木」。就像你使用不同的積木來搭建城堡一樣,你將會運用這些結構來構建軟體、應用程式和遊戲。不用擔心,剛開始接觸可能會覺得像在學習一種新語言——但在這些筆記結束後,你將能流暢地使用「電腦語言」對話!

1. 基本資料型別 (LO 1.2.1)

在我們告訴電腦該做什麼之前,我們需要先了解它能處理的資訊類型。在 Python(你們課程中使用的語言)中,我們主要關注四種型別:

1. 整數 (int): 即整數。可以是正數、負數或零。
例如:10, -5, 0

2. 浮點數 (float): 即帶有小數點的數字。
例如:3.14, -0.01, 2.0

3. 字串 (str): 這只是文字的專業說法。字串必須用引號包起來。
例如:"Hello World", 'Computing is fun!', "123"(注意:"123" 是文字,不是數字!)

4. 布林值 (bool): 這代表邏輯。它們只有兩個值:True(真)False(假)
例如:太陽熱嗎?True。5 大於 10 嗎?False。

你知道嗎? 電腦其實只「看懂」1 和 0。這些資料型別實際上是抽象化(abstractions)的概念,幫助我們人類在與機器溝通時,不用為了底層的二進制而發瘋!

常見錯誤: 當你使用 input() 函式時,Python 永遠會把你輸入的內容視為字串。如果你想把它當成數字使用,必須進行型別轉換,就像這樣:\( \text{age} = \text{int(input("Enter age: "))} \)。

快速回顧:
int:整數。
float:小數。
str:引號內的文字。
bool:True/False 邏輯值。

2. 使用程式庫函式 (LO 1.2.2)

你不需要重新發明輪子!Python 提供了「程式庫(Libraries)」——即處理常見任務的預編寫程式碼。你只需要知道如何呼叫它們即可。

輸入與輸出

print():將資訊顯示在螢幕上。
input():從使用者那裡取得資訊。

數學運算

若要使用進階數學功能,通常會用到 math 模組。以下是你需要掌握的幾個函式:
math.sqrt(x):計算平方根。
math.ceil(x):將數字無條件進位至最接近的整數。
math.floor(x):將數字無條件捨去至最接近的整數。

字串操作

字串就像一條字元組成的「鏈條」。你可以輕鬆地操作它們:
串接 (Concatenation, +): 將兩個字串連在一起。"Ice" + "Cream" 會變成 "IceCream"
切片 (Slicing): 截取字串的一部分。\( \text{str[0:3]} \) 可以取得前三個字元。
len(): 計算字串中有多少個字元。

記憶小撇步: 把程式設計中的程式庫 (library) 想像成真實世界的圖書館。你不必自己寫書;你只需要走進去,「借用」你需要的知識(函式)即可!

重點總結: 程式庫函式可以節省時間,並使你的程式碼更可靠,因為這些功能都已經過專家的測試。

3. 抽象化:函式與程序 (LO 1.2.3)

隨著程式變大,程式碼會變得混亂。抽象化 (Abstraction) 的過程就是隱藏複雜細節,並將程式碼歸類為「區塊」,稱為函式 (Functions)程序 (Procedures)

比喻: 當你按下微波爐的「啟動」鍵時,你不需要知道電力是如何產生輻射來加熱食物。你只需要使用「啟動」這個函式。複雜性對你來說是被隱藏起來的。

兩者的區別

1. 函式 (Function): 一段執行特定任務並將結果回傳 (return) 給你的程式碼區塊。
例如:一個計算稅務並回傳最終價格的函式。

2. 程序 (Procedure): 一段執行特定任務但不會回傳特定值的程式碼區塊。在 Python 中,我們使用 def 關鍵字來定義兩者。
例如:一個單純在螢幕上顯示「歡迎」訊息的程序。

為什麼要使用它們?
可重用性 (Reusability): 寫一次,就能使用多次。
清晰度 (Clarity): 讓你的程式碼更容易閱讀。
模組化 (Modularization): 將大問題拆解成小巧、易於管理的「模組」。

重點總結: 函式就像機器:你給它「輸入」(參數),它進行運作,最後「輸出」(回傳)一個結果。

4. 區域變數與全域變數 (LO 1.2.4)

並非所有變數在任何地方都能使用。這個概念稱為作用域 (Scope)

區域變數 (Local Variables): 它們生活在函式內部。當函式開始時被建立,函式結束時便消失。
比喻:你在臥室裡的私人日記。只有在那個房間裡(函式內)的人才能讀到。

全域變數 (Global Variables): 它們存在於所有函式外部。程式的任何部分都能看到並使用它們。
比喻:學校食堂裡的佈告欄。每個人都看得到。

重要提示: 專業程式設計師會盡量避免使用過多的全域變數。為什麼?因為如果程式的任何部分都能修改變數,當出現錯誤(Bug)時,就很難追蹤到底是哪裡出了問題!

快速回顧:
區域 (Local):安全、暫時、函式私有。
全域 (Global):永久、所有人皆可存取,但容易造成混亂的 Bug。

5. Python 列表與字典 (LO 1.2.5)

有時候,你需要儲存的是一資料,而不僅僅是一個。這時候就是列表 (Lists)字典 (Dictionaries) 派上用場的時候。

Python 列表 (Lists)

列表是有序的項目集合。想像成購物清單或排隊隊列。
查詢: \( \text{my\_list[0]} \) 可取得第一個項目(記得,我們從 0 開始數!)。
新增: 使用 .append() 將項目新增到末尾。
更新: \( \text{my\_list[1] = "New Value"} \)。
刪除: 使用 del my\_list[index].remove(value)

Python 字典 (Dictionaries)

字典以鍵值對 (Key-Value pairs) 的形式儲存資料。就像真正的字典:你查詢一個「詞」(鍵,Key)來找到它的「定義」(值,Value)。
查詢: \( \text{my\_dict["name"]} \) 可取得該鍵對應的值。
新增/更新: \( \text{my\_dict["age"] = 18} \)。如果鍵不存在則新增,若已存在則更新。
刪除: 使用 del my\_dict["key"]

總結表格:
列表 (List):使用索引編號 (0, 1, 2...)。適合用於順序性項目。
字典 (Dictionary):使用自定義鍵 (字串/數字)。適合用於結構化資料,如使用者檔案。

結語

如果不記得這些細節也別擔心。程式設計是一種技能,而不僅僅是一堆知識點。練習將這些結構輸入電腦的次數越多,你就會感覺越自然。你已經掌握了程式如何構建的核心基礎——做得好!

最後重點: 程式設計的核心在於為任務選擇合適的工具(資料型別、函式或資料結構)。繼續保持練習!