文章

Python-9-迴圈(Loop)(進階)—迴圈再迴圈以及進階應用示範

零、前言

迴圈的使用其實有很多樣,有時候迴圈中還需要迴圈、有時則是每個迴圈都有個別需要判斷的情境導致不一定都會執行完,這些比較複雜的狀況,都是現實開發程式很容易遇到的事情。

以下將用三個例子直接示範迴圈比較進階但常出現的使用方式:

  1. 雙重迴圈
  2. break 指令
  3. continue 指令

一、雙重迴圈

例子:9x9 乘法表

我們來做一個 9x9 乘法表,這是我們每天在學校會用到的

1
2
3
4
for i in range(1, 10):  # 外部迴圈,控制乘數1-9
    for j in range(1, 10):  # 內部迴圈,控制被乘數1-9
        print(f"{i} x {j} = {i * j}", end="\t")
    print()  # 每行乘法表結束後換行

輸出結果 輸出結果

  • 這個例子中,我們有兩個迴圈,外部迴圈 i 從 1 到 9,內部迴圈 j 也從 1 到 9
  • 每次內部迴圈完成後,我們會印出一行乘法表
  • “\t” 代表輸出不跳下一行,而是「縮排」結尾,所以在j內部迴圈中,都會在同一橫列輸出,中間間隔一個縮排

二、使用 break 跳出迴圈

例子:尋找特定數字

假設我們有一個數列,我們要找出第一個能被7整除的數字

1
2
3
4
5
6
7
8
9
numbers = [3, 10, 15, 21, 22, 33, 45]

# 依序檢查是否可以被 7 整除
for number in numbers:
    if number % 7 == 0:
        print(f"找到第一個能被 7 整除的數字:{number}")
        break  # 找到後就跳出迴圈
    else:
        print(f"{number} 不能被 7 整除")

輸出結果 輸出結果

  • 在這個例子中,我們使用 break 來跳出迴圈
  • 當我們找到第一個能被 7 整除的數字時,我們就不需要再繼續檢查剩下的數字了
  • 這樣的技巧在檢查數字非常大量的情況下可以有效「減少運算時間」

三、使用 continue 跳過迴圈中的某些部分

例子:過濾不需要的數字

我們有一個數列,但我們只想要印出偶數

1
2
3
4
5
6
7
numbers = [3, 10, 15, 20, 22, 33, 44]

for number in numbers:
    if number % 2 != 0:
        print(f"奇數:{number},跳過,重新執行迴圈")
        continue  # 如果是奇數,跳過此次迴圈
    print(f"偶數:{number}")

輸出結果 輸出結果

  • 這個例子中,我們使用 continue 來跳過不需要的數字
  • 如果當前的數字是奇數,我們就跳過此次迴圈,直接進入下一個數字的檢查

四、結語

這三個例子示範了如何在 Python 中使用雙重迴圈,以及breakcontinue的基本用法,希望透過上述案例可以讓讀者更清楚明白這些技巧在實際的使用方式,特別是後兩者的使用,在平常程式開發是非常常會出現的,因為凡事都有例外。

本文章以 CC BY 4.0 授權