歡迎來到程式設計的基礎積木!
你好!今天,我們要探索程式設計師工具箱中最三個重要的工具:結構 (Constructs)。你可以把它們想像成代碼的「樂高積木」。無論一個應用程式或遊戲看起來多麼複雜,它們實際上都是由這三個基本模式組成的。
在本章中,我們將學習如何閱讀流程圖 (flowcharts) 中的這些模式,以及如何在 Python 中使用它們。如果起初覺得像謎題一樣,別擔心——一旦你看懂了這些模式,你就能像看書一樣輕鬆「閱讀」任何程式!
1. 三大基本結構
你編寫的每一個演算法都會用到這三種結構中的一種或多種:
1. 順序 (Sequence):按照特定的順序,一項接一項地執行。
2. 選擇 (Selection):做出選擇(就像「十字路口」的抉擇)。
3. 疊代 (Iteration):重複執行步驟(即「迴圈」)。
現實生活中的比喻:
想像你正在沖一杯美祿 (Milo):
- 順序:先放入粉末,再加入熱水,然後攪拌。
- 選擇:如果 (IF) 你想喝甜一點,那麼 (THEN) 加入煉奶;否則 (ELSE),就保持原味。
- 疊代:當 (WHILE) 還有粉末結塊時,不斷攪拌美祿。
2. 順序:步驟式的路徑
順序是最簡單的結構。它意味著電腦會完全按照你編寫的指令順序,從上到下執行。
在流程圖中:
你會看到方框由指向下方的箭頭連接。每個方框的動作只有在它上面的動作完成後才會發生。
在 Python 中:
每一行代碼都會被逐一執行。
範例:
print("Hello!")
print("How are you?")
print("Goodbye!")
快速回顧:在順序結構中,順序就是一切!如果你在穿鞋子「之後」才穿襪子,那肯定行不通。代碼也是一樣的道理。
3. 選擇:決策制定者
當程式需要根據一個條件 (condition)(一個結果為「真」或「假」的問題)來做決定時,就會用到選擇。
在流程圖中:
選擇通常由一個菱形表示。它通常有兩個箭頭指向外側:一個標記為「是」(True),另一個標記為「否」(False)。
在 Python 中:
我們使用關鍵字 if、elif(即 "else if" 的縮寫)和 else。
類型 1:簡單 If
用於當你只想在條件為真時執行某些操作。
if score > 50:
print("You passed!")
類型 2:If-Else
用於當你有兩個明確的選擇時。
if temperature > 30:
print("It is hot!")
else:
print("It is cool!")
類型 3:多重選擇 (If-Elif-Else)
用於當你有許多不同選項時。
if grade == "A":
print("Excellent!")
elif grade == "B":
print("Good job!")
else:
print("Keep trying!")
要避免的常見錯誤:別忘了在 Python 的 if 和 else 行末尾加上冒號 (:)!另外,請記住選擇結構內部的代碼必須縮排 (indented)(向右推)。
重點總結:選擇能讓你的程式變得「聰明」,並針對不同的輸入做出不同的反應。
4. 疊代:重複的力量
疊代(或稱「迴圈」)是指電腦重複執行某段代碼。這是電腦最擅長的事——它們永遠不會因為重複做同一件事而感到疲倦!
在流程圖中:
你會看到一個箭頭循環回到流程圖較早的位置。這會形成一個圓圈或「迴圈」。
在 Python 中:
你需要知道兩種主要的迴圈類型:
1. "While" 迴圈(條件控制)
只要條件為「真」,它就會重複執行。當我們不知道具體需要重複多少次時,就會用到它。
範例:當輸入密碼錯誤時,一直要求重新輸入。
2. "For" 迴圈(計數控制)
它會重複執行「特定的次數」。當我們明確知道要跑多少圈時,就會用到它。
範例:印出 "Hello" 10 次。
for i in range(10):
print("Hello")
記憶小幫手:將 While 迴圈想成「當我餓的時候,我就吃東西」。將 For 迴圈想成「我會刷牙 3 分鐘」。
你知道嗎?當條件永遠不會變成「假」時,就會發生無窮迴圈 (Infinite Loop)。電腦會一直執行該段代碼直到你強制停止它為止!
5. 流程圖總結表
當你在 O-Level 考試中解讀流程圖時,請記住這份快速指南:
橢圓形 (開始/結束):程式啟動與結束的地方。
矩形 (處理):簡單的動作或計算(順序)。
平行四邊形 (輸入/輸出):從使用者獲取數據或列印到螢幕上。
菱形 (決策):引導至選擇的問題(選擇或迴圈的開始)。
指向後方的箭頭:迴圈的標記(疊代)。
快速複習小測驗!
你能辨別以下場景使用了哪種結構嗎?
1. 計算機將兩個數字相加並顯示結果。(答案:順序)
2. 遊戲檢查生命值是否為 \( 0 \),以判斷遊戲是否結束。(答案:選擇)
3. 應用程式向通訊錄中的每一個人發送「生日快樂」電子郵件。(答案:疊代)
最後的鼓勵:你剛剛掌握了所有程式設計的基礎!如果你能熟練運用這三種結構——順序、選擇和疊代——你幾乎可以構建任何東西。繼續練習繪製流程圖並撰寫小的 Python 程式碼片段,這很快就會成為你的第二天性!