Thursday, 1 October 2026

🐍 Python Pattern Challenge — Day 17

 


🐍 Python Pattern Challenge — Day 17

Pattern printing is a great way to improve your Python loops, spacing, nested loops, and logical thinking. For Day 17, let's create a Hollow Star Diamond Pattern ⭐.

This pattern looks like a diamond from the outside, but the center remains empty. The challenge is to control the left spaces, stars, and inner spaces correctly.

Today's Challenge

Write a Python program to print:






Best and cleanest code will be rewarded! πŸ†


Solution 1 — Using Nested for Loops

n = 4 # Upper part for i in range(1, n + 1): print(" " * (n - i), end="") for j in range(2 * i - 1): print("*", end=" ") print() # Middle hollow part for i in range(3): print("* *", end=" ") print(" " * 3, end="") print("* *") # Lower part for i in range(n - 1, 0, -1): print(" " * (n - i), end="") for j in range(2 * i - 1): print("*", end=" ") print()












How it works

The first loop creates the growing upper section:

* * * * * * * * * * * * * * * * Then the middle section keeps the center empty: * * * * * * * * * * * *

Finally, the last loop creates the decreasing lower section: * * * * * * * * *







Solution 2 — Using String Multiplication

n = 4 for i in range(1, n + 1): print(" " * (n - i) + "* " * (2 * i - 1)) for i in range(3): print("* *" + " " * 3 + "* *") for i in range(n - 1, 0, -1): print(" " * (n - i) + "* " * (2 * i - 1))






Here:

"* " * (2 * i - 1)

controls the number of stars in the upper and lower sections.

And:

" " * 3

creates the empty space in the center.


Solution 3 — Using a Function

def star_pattern(n): for i in range(1, n + 1): print(" " * (n - i) + "* " * (2 * i - 1)) for _ in range(3): print("* *" + " " * 3 + "* *") for i in range(n - 1, 0, -1): print(" " * (n - i) + "* " * (2 * i - 1)) star_pattern(4)








Using a function makes the pattern reusable and allows you to experiment with different sizes.


⚡ Short & Clean Code

n = 4 for i in range(1, n + 1): print(" " * (n-i) + "* " * (2*i-1)) for _ in range(3): print("* *" + " " * 3 + "* *") for i in range(n-1, 0, -1): print(" " * (n-i) + "* " * (2*i-1))







πŸ”₯ This version keeps the logic simple while producing the complete pattern.


πŸš€ Challenge Yourself

Can you modify this pattern:

  • Make the pattern larger?
  • Take the size using input()?
  • Create the same pattern using a while loop?
  • Make the center gap wider?
  • Replace * with another symbol?
  • Create a completely hollow version?

Drop your solution below! πŸ‘‡

17 Days. 17 Patterns. Stronger Python Logic. 🐍πŸ”₯

Learn • Practice • Grow with CLCODING πŸš€


Python for Geography & Geospatial Analysis

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 (15) 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 (435) 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 (1261) Python Library (15) Python Mathematics (19) Python Mistakes (51) Python Pattern Challenge (15) Python Quiz (646) 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)