Monday, 21 September 2026

🐍 Python Pattern Challenge — Day 9

 


🐍 Python Pattern Challenge — Day 9

Pattern printing is a great way to strengthen your Python logic, loops, conditions, and problem-solving skills. Today’s challenge is a little different from the previous patterns. We’ll create a unique hourglass-style star pattern by changing the number of stars across different rows.

The key is to understand how the number of stars can decrease, increase, and repeat in a controlled sequence.

Today's Challenge

Write a Python program to print:



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


Solution 1 — Using a for Loop

rows = [5, 3, 1, 3, 5, 3, 1, 3, 5] for stars in rows: spaces = (5 - stars) // 2 print(" " * spaces + "* " * stars)






How it works:

The important part is the list:

[5, 3, 1, 3, 5, 3, 1, 3, 5]

It controls how many stars appear in each row.

The pattern follows:

5 → 3 → 1 → 3 → 5 → 3 → 1 → 3 → 5

Then:

spaces = (5 - stars) // 2


calculates how much indentation is required before printing the stars.


Solution 2 — Using Nested Loops

rows = [5, 3, 1, 3, 5, 3, 1, 3, 5] for stars in rows: spaces = (5 - stars) // 2 for _ in range(spaces): print(" ", end="") for _ in range(stars): print("*", end=" ") print()








How it works:

Here, nested loops separately control the two parts:

  • First loop → creates the leading spaces.
  • Second loop → prints the required number of *.
  • Outer loop → moves through the pattern sequence.

This makes the relationship between spaces, stars, and rows easier to understand.


Solution 3 — Using a Pattern Formula

Instead of manually writing every row, we can generate the sequence using a repeating pattern.

pattern = [5, 3, 1] for block in range(3): for stars in pattern: spaces = (5 - stars) // 2 print(" " * spaces + "* " * stars)




How it works:

The pattern:

[5, 3, 1]

is repeated three times.

The outer loop:

for block in range(3):

controls the number of repetitions.

This makes the code more structured and reusable.


⚡ Short & Clean Code

for s in [5,3,1,3,5,3,1,3,5]: print(" "*((5-s)//2) + "* "*s)



πŸ”₯ A single loop is enough to generate the complete pattern!


πŸš€ Challenge Yourself

Can you modify this pattern:

  • Replace * with numbers?
  • Take the maximum width using input()?
  • Generate the sequence without manually writing the list?
  • Use a while loop?
  • Create a similar pattern using letters?
  • Solve it using the shortest possible Python code?

Drop your solution below! πŸ‘‡

Learn • Practice • Grow with CLCODING πŸπŸ’»

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (119) AI (345) 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 (433) Data Strucures (18) Deep Learning (220) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (9) Excel (24) Finance (13) flask (4) flutter (1) FPL (17) Generative AI (77) 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 (404) Meta (24) MICHIGAN (5) microsoft (13) Nvidia (8) Pandas (16) PHP (20) Projects (35) Python (1375) Python Coding Challenge (1245) Python Library (5) Python Mathematics (17) Python Mistakes (51) Python Pattern Challenge (8) Python Quiz (637) 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)