iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0

上一章介紹了簡單的,一路走到底的流程。而今天要來介紹剩下兩種不一樣的流程控制語法。其中一種,是可以依照情況不同而做出不同行為的「分叉型流程」。

所謂的情況不同而做出不同行為,例如上一章的計程車計費計算裡,當想要加入「一般收費」及「夜間加成」時,就會用到這種流程控制。

分叉也有不同的口味

在 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 中還有 whiledo...while 迴圈語法,但只有在比較特別的場景下會使用。只要記得有這兩種能不斷的重覆直到某種條件達成的迴圈就好。

當然如果你還是想看看怎麼寫 whiledo...while 的話,一樣就問問 AI 吧~

營火前的小測驗

  1. 哪種情況最適合用 if/else 來處理?
    A) 檢查今天是否要帶體育服
    B) 印出全班每個同學的名字
    C) 計算1到10的總和
    D) 把所有作業科目列出來

  2. 跟一連串的 if/elif/else 相比,什麼時候用 match/case 會比較清楚?
    A) 需要複雜的數學計算時
    B) 要對同一個變數的不同值做不同處理時
    C) 需要重複執行很多次時
    D) 要處理陣列資料時

  3. 哪種情況最適合用 for 迴圈?
    A) 檢查分數是否及格
    B) 對全班30個同學發作業本
    C) 根據今天星期幾決定課表
    D) 判斷是否下雨

新手村地圖快要開完了

終於,在新手村裡,我們剩下最後一個函式的概念要學,接著就可以來做一些有趣的事了


上一篇
Ch 6. AI 裡的變數用法與程式裡的簡單流程
系列文
Just enough code with AI: 給新手們的程式設計世界觀8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言