💻Python 的嵌套 for 迴圈並結合 if 條件判斷來生成一個 $6X$ 的乘法表~邱允文
💻 詳細解說如何使用 Python 的嵌套 for 迴圈並結合 if 條件判斷來生成一個 $6 \times 6$ 的乘法表,同時篩選並標記奇數和偶數乘積。
這個實務操作屬於迴圈語法:嵌套迴圈與條件控制的進階應用。
💻 完整程式碼範例:$6 \times 6$ 偶數乘積篩選表
案例一:基本 $6 \times 6$ 偶數篩選表
這個案例將嚴格按照提示詞要求,使用 if 條件判斷乘積的奇偶性,並使用星號 * 作為奇數乘積的佔位符。
步驟解說 (Step-by-Step)
定義處理範圍: 設定乘法表的維度為 $6 \times 6$,因此使用
range(1, 7),生成 $1$ 到 $6$ 的整數序列。外部迴圈(行
i): 使用for i in range(1, 7):,變數i代表乘法的第一個乘數(行)。內部迴圈(列
j): 嵌套for j in range(1, 7):,變數j代表乘法的第二個乘數(列)。計算乘積與條件判斷:
計算乘積
result = i * j。使用模運算符
%進行奇偶性檢查:if result % 2 == 0:。如果餘數為 $0$,則結果為偶數。
偶數結果打印: 如果判斷為偶數,則格式化打印完整的算式,例如
2*3= 6。使用格式化字串
"{result:2}"確保結果數字佔用 2 個字符,以維持對齊。
奇數佔位符打印: 如果判斷為奇數,則打印一個由星號組成的佔位符(例如
* * *),這個佔位符的長度必須與偶數的輸出長度大致相等,以保持網格結構。換行控制: 在內部迴圈打印時,使用
end=" | "保持在同一行。在內部迴圈結束後,使用單獨的print()實現換行。
程式碼細節
def generate_even_multiplication_table(size):
"""
生成指定 size x size 的乘法表,只顯示偶數乘積,奇數使用佔位符。
"""
print(f"\n--- 案例一:生成 {size} x {size} 偶數乘積篩選表 ---")
# 設置範圍,從 1 到 size (包含 size)
range_limit = size + 1
# 1. 外部迴圈:控制行數 (i)
for i in range(1, range_limit):
# 2. 內部迴圈:控制列數 (j)
for j in range(1, range_limit):
# 3. 計算結果
result = i * j
# 4. 條件判斷:檢查是否為偶數
if result % 2 == 0:
# 偶數結果:顯示完整的算式,結果數字佔 2 位用於對齊
output = f"{i}*{j}={result:2}"
print(output, end=" | ")
else:
# 奇數結果:使用星號作為佔位符,長度與算式長度匹配 (約 7 個字符)
print(" * * * ", end=" | ")
# 5. 內部迴圈結束後,進行換行
print()
# 打印分隔線增加可讀性
print("-" * (size * 10))
# 執行 6x6 偶數乘積篩選表
generate_even_multiplication_table(6)
Prompt 範例:
"請使用 Python 嵌套 for 迴圈生成一個 $6 \times 6$ 的乘法表。在打印時,請加入一個 if 條件,只顯示乘積是偶數的結果,對於乘積是奇數的位置,請用星號 * 作為佔位符來保持網格結構。"
案例二:變形:只篩選能被 3 整除的乘積(使用 continue 忽略其他)
這個案例演示瞭如何在內層迴圈中使用更複雜的篩選條件,並且不使用佔位符,而是利用 continue 跳過並只打印空格,從而形成一個稀疏的網格。
步驟解說 (Step-by-Step)
外部/內部迴圈: 遍歷 $7 \times 7$ 的所有組合(範例從 $1$ 到 $7$)。
篩選條件: 檢查乘積是否能被 $3$ 整除:
if result % 3 != 0:。使用
continue: 如果乘積不能被 $3$ 整除,執行continue。這會跳過後續的打印代碼。打印合格結果: 只有能被 $3$ 整除的乘積才會執行打印,並且為了保持網格,對於被跳過的位置,我們需要一個機制來保持寬度。
程式碼細節
def generate_divisible_by_three_table(size):
"""
生成指定 size x size 的乘法表,只顯示能被 3 整除的乘積,其餘留空。
"""
print(f"\n--- 案例二:生成 {size} x {size} 只顯示能被 3 整除的乘積表 ---")
range_limit = size + 1
# 外部迴圈 (行 i)
for i in range(1, range_limit):
# 內部迴圈 (列 j)
output_row = ""
for j in range(1, range_limit):
result = i * j
# 1. 篩選條件:檢查是否能被 3 整除
if result % 3 == 0:
# 2. 合格結果:格式化算式
output = f"{i}*{j}={result:2}"
else:
# 3. 不合格結果:使用空格佔位符,寬度與算式寬度匹配 (約 7 個字符)
output = " " * 7
output_row += f"{output} | "
# 4. 打印整行並換行
print(output_row)
print("-" * (size * 10))
# 執行 7x7 能被 3 整除篩選表
generate_divisible_by_three_table(7)
Prompt 範例:
"請使用 Python 嵌套
for迴圈生成一個 $8 \times 8$ 的乘法表。如果乘積可以被 $4$ 整除,則顯示算式;否則,請在該位置打印三個井號# # #作為佔位符。"
案例三:變形:限定範圍的下三角奇偶數分析
這個案例結合了案例二的下三角結構和案例一的奇偶性判斷,但僅限定在 $4 \times 4$ 的範圍內,以縮小觀察細節。
步驟解說 (Step-by-Step)
外部/內部迴圈範圍限定: 將範圍設定為
range(1, 5)。外部迴圈:
for i in range(1, 5):。內部迴圈(下三角):
for j in range(1, i + 1):。
判斷邏輯: 檢查乘積
result = i * j的奇偶性。打印規則:
偶數: 顯示完整的算式。
奇數: 顯示一個問號佔位符
? ? ?。
對齊: 由於每行的長度不同(三角形結構),對齊方式需要依賴於統一的字符寬度。
程式碼細節
def generate_triangle_odd_even_table(size):
"""
生成 size x size 的下三角乘法表,並根據奇偶性顯示不同標記。
"""
print(f"\n--- 案例三:生成 {size} x {size} 下三角奇偶性分析表 ---")
range_limit = size + 1
# 1. 外部迴圈:行 i
for i in range(1, range_limit):
# 2. 內部迴圈:列 j (下三角結構: j <= i)
output_row = ""
for j in range(1, i + 1):
result = i * j
# 3. 條件判斷:奇偶性
if result % 2 == 0:
# 偶數結果:完整的算式
output = f"{i}*{j}={result:2}"
else:
# 奇數結果:問號佔位符
output = " ? ? ? "
# 使用格式化確保每個單元格佔用相同寬度
output_row += f"{output:<8}"
# 4. 打印整行並換行
print(output_row)
print("-" * (i * 8)) # 分隔線長度隨行數變化
# 執行 4x4 下三角奇偶性分析表
generate_triangle_odd_even_table(4)
留言
張貼留言