Tuesday, 29 September 2026

🐍 Python Pattern Challenge — Day 16

 




🐍 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 0

This 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. 🐍πŸ”₯


HANDS-ON STATISTICS FOR DATA ANALYSIS IN PYTHON


0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (119) AI (346) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (31) Azure (12) BI (10) book (1) Books (359) Bootcamp (14) C (78) C# (12) C++ (83) cloud (1) Course (93) Coursera (305) Cybersecurity (36) data (10) Data Analysis (47) Data Analytics (31) data management (16) Data Science (434) Data Strucures (19) Deep Learning (222) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (9) Excel (24) Finance (13) flask (4) flutter (1) FPL (17) Generative AI (78) Git (13) Google (55) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (43) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (407) Meta (24) MICHIGAN (5) microsoft (13) Nvidia (8) Pandas (16) PHP (20) Projects (35) Python (1377) Python Coding Challenge (1259) Python Library (13) Python Mathematics (19) Python Mistakes (51) Python Pattern Challenge (15) Python Quiz (645) Python Tips (112) Questions (3) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (21) SQL (55) Udemy (22) UX Research (1) web application (11) Web development (9) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)