上一章介紹了簡單的,一路走到底的流程。而今天要來介紹剩下兩種不一樣的流程控制語法。其中一種,是可以依照情況不同而做出不同行為的「分叉型流程」。
所謂的情況不同而做出不同行為,例如上一章的計程車計費計算裡,當想要加入「一般收費」及「夜間加成」時,就會用到這種流程控制。
在 Python 語言裡,分叉不只有語法。其中最有名的語法,應該就是 if/else
這個系列了。這個系列特別適合 1 ~ 3 種不一樣的情況:
age = 10
if age > 18:
print("已成年")
else:
print("未成年")
接下來就跟 AI 問答,看看 if/else
的各種寫法範例,以及它的優缺點吧:
grade = "四"
terms = [
"資料與流程",
"數字",
"字串",
"布林值",
"陣列(Array)",
"字典(Dictionary)",
"集合(Set)",
"運算流程"
]
我目前是{grade}年級的學生,我目前已經理解的程式概念包括{terms}。請先確認我的年級與已知的概念,再開始對話。
請告訴我幾種 `if/else` 的例子,並跟我討論這種語法的適用情況與優缺點。
match/case
而 match/case
語法適合一次要處理很多種不一樣的情況。
lunch = "便當"
match lunch:
case "便當":
print("今天吃便當,記得帶餐具喔!")
case "麵包":
print("吃麵包配牛奶很健康!")
case "麵":
print("小心燙,慢慢吃~")
case "水餃":
print("記得沾醬油和醋!")
case _:
print("不管吃什麼,都要吃光光喔!")
記得跟 AI 對話,請它舉出更多的範例,並討論 match/case
的優缺點。你可以告訴 AI 你喜歡的東西,像是寶可夢、足球或是圍棋等等題目,請 AI 舉出有什麼 match/case
的用法
而最後一種,則是反覆相同動作的「迴圈型流程」。跟分叉一樣, Python 裡的迴圈型流程也有好幾種。最常用的,就是固定反覆次數的 for
迴圈
daily_savings = [10, 20, 15, 10, 25, 30, 20] # 一週每天存的零用錢
total = 0
print("這一週的存錢記錄:")
for day, money in enumerate(daily_savings, 1):
total += money
print(f"第{day}天存了 {money} 元,目前總共存了 {total} 元")
print(f"一週總共存了 {total} 元!")
記得跟 AI 對話,請它舉出更多的範例,並討論 for
迴圈的優缺點喔。
除了最常用的 for
之外,在 python 中還有 while
與 do...while
迴圈語法,但只有在比較特別的場景下會使用。只要記得有這兩種能不斷的重覆直到某種條件達成的迴圈就好。
當然如果你還是想看看怎麼寫 while
及 do...while
的話,一樣就問問 AI 吧~
哪種情況最適合用 if/else 來處理?
A) 檢查今天是否要帶體育服
B) 印出全班每個同學的名字
C) 計算1到10的總和
D) 把所有作業科目列出來
跟一連串的 if/elif/else 相比,什麼時候用 match/case 會比較清楚?
A) 需要複雜的數學計算時
B) 要對同一個變數的不同值做不同處理時
C) 需要重複執行很多次時
D) 要處理陣列資料時
哪種情況最適合用 for 迴圈?
A) 檢查分數是否及格
B) 對全班30個同學發作業本
C) 根據今天星期幾決定課表
D) 判斷是否下雨
終於,在新手村裡,我們剩下最後一個函式
的概念要學,接著就可以來做一些有趣的事了