iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Software Development

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

Day 7:迴圈 – 讓程式重複執行

  • 分享至 

  • xImage
  •  

1. 什麼是迴圈?
迴圈 (Loop) 的概念就是:只要條件成立,就一直重複執行某段程式碼
Python 有兩種常見迴圈:

  1. for 迴圈 – 重複固定次數或逐一取出序列的元素
  2. while 迴圈 – 當條件成立時就一直執行,直到條件不成立才停止

2. 為什麼要用迴圈?
可以想像一下:
假如今天你要印出10次「Hello」,如果不用迴圈,就要重複寫10遍一模一樣的程式碼:
https://ithelp.ithome.com.tw/upload/images/20250921/20178872abQ8POzvgK.png
10次可能會覺得還好,但如果要印100次就會很麻煩,會很累!
這個時候有了迴圈,只要一行,就能讓程式自動重複執行。

3. for 迴圈 – 重複固定次數
for 是最常用的迴圈,可以搭配 range() 來控制次數

程式範例 :
https://ithelp.ithome.com.tw/upload/images/20250921/20178872bmq7mMuVUo.png
按下執行鈕後,結果會輸出
https://ithelp.ithome.com.tw/upload/images/20250921/201788728Ny7dVky98.png

  1. 程式碼中的 range(5) 代表從 0 開始,到 4 結束 (不含 5),一共 5 次
  2. i 則是迴圈變數,每次迴圈會自動+1

如果想要從1開始到5的話,可以寫成:
https://ithelp.ithome.com.tw/upload/images/20250921/20178872w5ySCCtNj6.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20250921/20178872kYYlu1tyx7.png
🔑 重點:range(start, stop) 會包含 start,但不包含 stop
start 是從哪裡開始,stop 是「到哪裡結束之前」,換句話說,停在 stop 之前,不會包含 stop。
因為程式常常需要「跑固定次數」,不包含結尾比較方便計算:

  1. 如果要跑 5 次,只要寫 range(5),就會跑 0,1,2,3,4 → 剛好 5 次
  2. 如果要從 1 跑到 10,就寫 range(1, 11),因為結尾不含 11,剛好跑到 10

4. while 迴圈 – 重複到條件不成立
while 迴圈會「只要條件成立就一直做下去」

程式範例 :
https://ithelp.ithome.com.tw/upload/images/20250921/20178872yQadCE6j1d.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20250921/20178872qShMoTzCgD.png

  1. 首先設定一個「變數」為 count,並且把它的值設為 0
  2. while 是「當……的時候就一直做」,只要 count 這個數字比5小,就一直重複執行下面的程式碼
  3. 第一次執行時,count 是0,第一次迴圈跑完後,count 會變成1,當 count 變成5時,條件 count < 5 就不成立,迴圈就會停止
  4. 最後一行需把 count 的值加 1,然後再存回 count 裡面,否則會變成無限迴圈,程式永遠停不下來

5. break 與 continue – 控制迴圈流程
break:立刻跳出整個迴圈
continue:跳過本次迴圈,直接進入下一次

程式範例 :
https://ithelp.ithome.com.tw/upload/images/20250921/20178872vZXhvCqo9L.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20250921/20178872K8Qj7gvr5W.png

  1. 建立一個 for 迴圈,i 會依序從 1、2、3、4、5 取值
  2. 當 i 是3的時候,就不執行本次迴圈,直接跳到下一行程式碼
  3. 如果 i 等於5,就會直接停止整個迴圈,不再繼續跑下去

6. 巢狀迴圈 – 迴圈裡面還有迴圈
巢狀迴圈可以用來處理多層結構,例如列印九九乘法表

程式範例 :
https://ithelp.ithome.com.tw/upload/images/20250921/20178872u9QCCRrq5T.png
結果會依序輸出1~9的九九乘法表
https://ithelp.ithome.com.tw/upload/images/20250921/20178872kJRFKj4xX4.png
https://ithelp.ithome.com.tw/upload/images/20250921/20178872TIRqouGCQZ.png

  1. range(1, 10) 會依序產生:1, 2, 3, 4, 5, 6, 7, 8, 9
  2. 這裡又有一個 for 迴圈,表示在 每一個 i 的情況下,再讓 j 從 1 跑到 9
  3. 所以當 i = 1 時,j 會依序是 1, 2, 3...9,等 j 跑完 1~9,再回到外層,讓 i = 2,再跑 j 的 1~9
  4. "-" * 10 代表把字元 - 重複 10 次 → "----------",這行會在每個 i 的 1~9 都印完之後,印一條分隔線
  5. 外層 for 控制 i(決定是哪一行)
  6. 內層 for 控制 j(決定這一行要印哪些乘法)
  7. 內層跑完才換下一個 i

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

尚未有邦友留言

立即登入留言