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 = 5
We 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
-1
is 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.