iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 9

Day9 : 迴圈進階練習 – 巢狀迴圈、break、continue

  • 分享至 

  • xImage
  •  

1. 迴圈控制:break & continue
continue – 跳過當次迴圈 / break – 提前跳出迴圈
https://ithelp.ithome.com.tw/upload/images/20250923/20178872ATnLlsfB0i.png
https://ithelp.ithome.com.tw/upload/images/20250923/201788726k9OEalerN.png
當 i = 6 時,這次跳過,不印出,繼續下一輪
當 i = 10 時,用 break 直接結束整個迴圈

2. while 迴圈:猜數字遊戲
https://ithelp.ithome.com.tw/upload/images/20250923/20178872Xj5tR4tXZ8.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872TNa39MWCPs.png

  1. 先設定一個變數answer=8,這就是我們要猜的數字
  2. 把 guess 變數設定成 0,表示「一開始還沒猜」,這樣等一下 while 迴圈才能開始執行
  3. while 是重複執行的意思,條件是「只要 guess 不等於 answer」就一直重複
  4. != 表示「不等於」
  5. 當玩家猜對,條件不成立 → 跳出迴圈 → 遊戲結束

3. 印出奇數和偶數
https://ithelp.ithome.com.tw/upload/images/20250923/20178872vIzj4wuCIw.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872M6nPVYSfjW.png

為什麼不能用 if/else 直接寫在同一個迴圈?
https://ithelp.ithome.com.tw/upload/images/20250923/20178872pcPpzVZs7J.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872IjCAyCfgeI.png
雖然這樣也能印出所有數字,但奇數和偶數會混在一起,沒有辦法分成兩行(因為只有一個迴圈)
可能又會有人覺得那這樣我就使用print()換行,把偶數和奇數隔開
https://ithelp.ithome.com.tw/upload/images/20250923/20178872mFxKpSdixn.png
就會得到以下結果
https://ithelp.ithome.com.tw/upload/images/20250923/20178872YYgipKFvqU.png
因為這行 print() 和上面對齊,代表它也屬於 if 的區塊,也就是每遇到偶數就換行,看起來會像一行奇數、一行偶數交錯排。

4. 用 for 印出所有 1–50 的偶數,並計算總和
https://ithelp.ithome.com.tw/upload/images/20250923/20178872fwo8dBFoot.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872YqwYB8fvGN.png

  1. 先建立一個變數 total,用來累加偶數的總和,一開始先設成 0
  2. 用餘數 % 判斷偶數:如果能被 2 整除就是偶數
  3. total += i → 將偶數加到總和裡,相當於 total = total + i
  4. print() → 換行,讓總和印在下一行

5. 正三角形星號
https://ithelp.ithome.com.tw/upload/images/20250923/20178872umoZZS6xN7.png
執行程式碼後,就會得到一個正三角形
https://ithelp.ithome.com.tw/upload/images/20250923/201788728AV8lGr3O7.png

  1. 外層迴圈:控制「總共要印幾行」
  2. 內層迴圈:j 代表每行要印幾個星號,控制「每一行的星號數量」
  3. 先跑外層 → 每跑一次外層,就跑完整內層 (巢狀迴圈的概念)

Q1 : 為什麼 print() 要跟內層迴圈對齊?
A : 外層迴圈結束一個完整的內層迴圈後,才要換行,所以 print() 要跟內層迴圈同一層縮排,但不在內層迴圈裡。
Q2 : 如果縮排錯誤會怎樣?
縮排在內層裡:
https://ithelp.ithome.com.tw/upload/images/20250923/20178872aCuj8t2J7g.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872vwSdzjOeGD.png
這樣就會每印一個星號就換行

6. 倒三角形星號
https://ithelp.ithome.com.tw/upload/images/20250923/20178872usPj36ULpU.png
https://ithelp.ithome.com.tw/upload/images/20250923/20178872MnJOPSnG5R.png
利用range() 的倒數用法,控制列數遞減


上一篇
Day8 : 迴圈基礎練習
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言