【Python實作】製作一個星星符號組成的長方形

這篇要用 Python 製作一個由星星符號 * 組成的長方形。使用者輸入列數與行數後,程式就會印出對應大小的星星長方形。

📘 Python 實作|製作一個星星符號組成的長方形

練習目的

這次的練習重點是 巢狀迴圈,也就是在一個迴圈裡面再放另一個迴圈。

  • 練習使用 for 迴圈。
  • 練習使用 range() 控制重複次數。
  • 練習使用巢狀迴圈印出二維圖形。
  • 練習使用 print()end 參數控制換行。

🧭 題目說明

讓使用者輸入列數 rows 與行數 columns,接著印出一個由星星 * 組成的長方形。

如果使用者輸入:
rows = 3
columns = 4

程式就會印出 3 列、每列 4 顆星星的長方形。
* * * * * * * * * * * *

🧪 完整程式碼

以下是完整的 Python 星星長方形程式。

# 程式開始 rows = int(input("Enter number of rows: ")) cols = int(input("Enter number of columns: ")) for i in range(rows): for j in range(cols): print("*", end=" ") print("") # 程式結束

🖥️ 程式運行結果一

第一個範例輸入 3 列、4 行。

Enter number of rows: 3
Enter number of columns: 4
* * * *
* * * *
* * * *

🖥️ 程式運行結果二

第二個範例輸入 12 列、16 行。

Enter number of rows: 12
Enter number of columns: 16
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *

🔎 程式說明

這支程式的核心是兩層 for 迴圈。外層迴圈負責控制「列數」,內層迴圈負責控制「每一列要印幾顆星星」。

1. 讓使用者輸入列數

rows = int(input("Enter number of rows: "))

這一行讓使用者輸入要印出幾列。

因為 input() 讀進來的資料預設是字串,所以要使用 int() 轉成整數,後面才能放進 range()

如果輸入: 3 代表要印出 3 列星星。

2. 讓使用者輸入行數

cols = int(input("Enter number of columns: "))

這一行讓使用者輸入每一列要印出幾顆星星,也就是行數或欄數。

如果輸入: 4 代表每一列要印出 4 顆星星。

3. 外層 for 迴圈控制列數

for i in range(rows):

外層迴圈會依照 rows 的數字重複執行。

如果 rows = 3,這個迴圈就會執行 3 次,也就是印出 3 列。

rows = 3 for i in range(rows): ... 會執行 3 次

4. 內層 for 迴圈控制每列的星星數量

for j in range(cols):

內層迴圈會依照 cols 的數字重複執行。

如果 cols = 4,內層迴圈每次就會印出 4 顆星星。

cols = 4 for j in range(cols): print("*", end=" ") 每一列會印出 4 顆星星

5. 使用 print("*", end=" ") 不換行印出星星

print("*", end=" ")

平常使用 print() 時,印完內容後會自動換行。

但這裡希望星星能在同一列連續印出來,所以加上 end=" "

print("*", end=" ")

這代表印完 * 之後,不要換行,而是在後面加一個空格。

如果沒有加 end=" ",每顆星星都會自己換一行,長方形就印不出來了。

6. 使用 print("") 換到下一列

print("")

當內層迴圈把一整列的星星印完後,就需要換到下一列。

所以外層迴圈裡面,在內層迴圈結束後,會執行 print("")

for i in range(rows): for j in range(cols): print("*", end=" ") print("")

這個 print("") 的作用,就是單純換行。

🧭 執行流程整理

用表格整理外層迴圈與內層迴圈的分工,會更容易理解巢狀迴圈。

程式碼 負責內容 作用
rows 列數 決定總共要印幾排。
cols 行數/欄數 決定每一排要印幾顆星星。
for i in range(rows) 外層迴圈 控制長方形的高度。
for j in range(cols) 內層迴圈 控制每一列的寬度。
print("*", end=" ") 印出星星 不換行,讓星星排列在同一列。
print("") 換行 一列印完後,換到下一列。

💡 小補充:巢狀迴圈怎麼看?

巢狀迴圈就是「迴圈裡面還有迴圈」。

for i in range(rows): for j in range(cols): print("*", end=" ") print("")

可以把它想成:

  • 外層迴圈每跑一次,代表正在處理一整列。
  • 內層迴圈會在這一列中,印出指定數量的星星。
  • 內層迴圈跑完後,才會換到下一列。
簡單記法:
外層控制「有幾列」,內層控制「每列有幾顆」。

✅ 小結

這個星星長方形練習很適合拿來理解巢狀迴圈,因為它可以直接把迴圈的執行結果變成看得見的圖形。

  • rows:控制長方形的列數,也就是高度。
  • cols:控制每一列的星星數,也就是寬度。
  • 外層 for 迴圈:負責重複產生每一列。
  • 內層 for 迴圈:負責在每一列印出星星。
  • end=" ":讓星星不要每印一次就換行。
  • print(""):每一列印完後換行。
輸入列數與行數 → 外層迴圈控制列 → 內層迴圈控制星星數 → 印出星星長方形

留言

這個網誌中的熱門文章

麻將新手必看!不知道聽什麼牌怎麼辦?超多種實戰聽牌範例,教你怎麼判斷胡牌機會

麻將教學懶人包|從規則到牌理的完整觀念整理(附實戰心得)

【新訓入伍】義務役新兵必看!入伍報到必備清單整理|2026年更新