This content originally appeared on DEV Community and was authored by datatoinfinity
Ever stared at a coding pattern problem and wondered, “Where do I even start?”
If yes, this series is for you. We’ll break down pattern-based logic building — from stars to numbers — using simple Python code and clear visuals.
Pattern: Right-Angled Triangle Using Nested Loops in Python
We’re going to build this simple star pattern and understand the logic behind nested loops:
Logic Overview
We're using two for loops:
- The outer loop controls the rows
- The inner loop controls the columns (stars)
Output:
* * * * * * * * * * * * * * *
Step-by-Step Explanation
row = 5
for i in range(1, row + 1): # Outer loop: for each row (1 to 5)
for j in range(i): # Inner loop: print i stars
print("*", end=" ")
print() # Move to the
next line after each row
-
Why
range(1, row + 1)?-
range(n)goes from0 to n-1 - So
range(1, row + 1)gives:1, 2, 3, 4, 5 - That means we’ll have 5 rows, as required.
-
Why
range(i)for inner loop?
In each row, the number of stars is equal to the row number:
Row 1 → 1 star
Row 2 → 2 stars
...
Row 5 → 5 stars
Dry Run Table
| Row (i) | Inner Loop (j in range(i)) | Output |
|---|---|---|
| 1 | 0 | * |
| 2 | 0, 1 | * * |
| 3 | 0, 1, 2 | * * * |
| 4 | 0, 1, 2, 3 | * * * * |
| 5 | 0, 1, 2, 3, 4 | * * * * * |
Notice how the number of * matches the current row number i.
Summary
Outer loop (i) = rows
Inner loop (j) = columns (stars)
print("*", end=" ") prints stars on the same line
print() moves to the next line after each row
Reverse Right-Angled Triangle Pattern in Python
Output:
* * * * * * * * * * * * * * *
Step-by-Step Explanation:
row = 5
for i in range(row, 0, -1): # Outer loop: from 5 to 1
for j in range(i): # Inner loop: print i stars
print("*", end=" ")
print() # Move to the next line after each row
-
row = 5We want 5 rows, so we initialize the row variable as 5. You can increase this number for a larger pattern. -
for i in range(row, 0, -1)- This loop goes in reverse from row to 1.
-
range(5, 0, -1)outputs:5, 4, 3, 2, 1 - The third parameter
-1is the step; without it, the loop won’t run in reverse.
-
for j in range(i)- This inner loop controls how many stars get printed in each row — same as the current value of i. So: Row 1 → 5 stars Row 2 → 4 stars ... Row 5 → 1 star
Dry Run Table
| Row (i) | Inner Loop (j in range(i)) | Output |
|---|---|---|
| 5 | 0 1 2 3 4 | * * * * * |
| 4 | 0 1 2 3 | * * * * |
| 3 | 0 1 2 | * * * |
| 2 | 0 1 | * * |
| 1 | 0 | * |
Summary:
Outer loop (i): controls the number of rows, decreasing each time
Inner loop (j): prints stars equal to the current row number
end=" " prints stars on the same line
print() moves to the next line after each row
What if we make mirror image of Right-Angled Triangle Using Nested Loops in Python?
This content originally appeared on DEV Community and was authored by datatoinfinity
datatoinfinity | Sciencx (2025-07-14T19:15:58+00:00) Build Your Logic from Scratch: Python Pattern Problems Explained. Star Pattern-1. Retrieved from https://www.scien.cx/2025/07/14/build-your-logic-from-scratch-python-pattern-problems-explained-star-pattern-1/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.