π Python Pattern Challenge — Day 16
Pattern printing is a great way to improve your Python loops, conditions, spacing, and logical thinking. For Day 16, let's create a Hollow Star Diamond Pattern ⭐.
Unlike a filled diamond, this pattern keeps the center empty and uses stars only along the outer shape. It is a good exercise for understanding nested loops, spaces, and boundary conditions.
Today's Challenge
Write a Python program to print:
Best and cleanest code will be rewarded! π
Solution 1 — Using Nested Loops
n = 6 for i in range(n): spaces = n - i - 1 gap = 2 * i - 1 if i == 0: print(" " * (spaces * 2) + "*") else: print( " " * (spaces * 2) + "* *" + " " * (gap * 2) + "* *" ) for i in range(n - 2, -1, -1): spaces = n - i - 1 gap = 2 * i - 1 if i == 0: print(" " * (spaces * 2) + "*") else: print( " " * (spaces * 2) + "* *" + " " * (gap * 2) + "* *" )
How it works
The pattern has two parts:
Upper half:
Lower half:
* * * * * * * * * * * * * * *
The number of spaces between the stars increases toward the center and then decreases again.
Solution 2 — Using a Pattern Formula
n = 6 for i in list(range(n)) + list(range(n - 2, -1, -1)): if i == 0: print(" " * (2 * (n - 1)) + "*") else: left = " " * (2 * (n - i - 1)) middle = " " * (2 * i - 1) print(left + "* *" + middle + "* *")
How it works
Instead of writing two separate loops, we create one sequence:
list(range(n)) + list(range(n - 2, -1, -1))which produces:
0 1 2 3 4 5 4 3 2 1 0This controls the expansion and contraction of the diamond.
Solution 3 — Using a Function
def hollow_diamond(n): for i in list(range(n)) + list(range(n - 2, -1, -1)): if i == 0: print(" " * (2 * (n - 1)) + "*") else: left = " " * (2 * (n - i - 1)) middle = " " * (2 * i - 1) print(left + "* *" + middle + "* *") hollow_diamond(6)
Now you can change:
hollow_diamond(6)to:
hollow_diamond(8)to experiment with a larger pattern.
⚡ Short & Clean Code
n = 6 for i in list(range(n)) + list(range(n-2, -1, -1)): if i == 0: print(" " * (2*n-2) + "*") else: print(" "*(2*(n-i-1)) + "* *" + " "*(2*i-1) + "* *")
π₯ A compact solution using just one main loop.
π Challenge Yourself
Can you modify this pattern:
- Make the diamond larger?
- Create a double hollow diamond?
- Replace * with another symbol?
- Create the same pattern using a while loop?
- Remove the extra spaces between the outer stars?
- Create a filled version of this pattern?
Drop your solution below! π
16 Days. 16 Patterns. Stronger Python Logic. ππ₯

0 Comments:
Post a Comment