TechBeamersTechBeamers
  • Learn ProgrammingLearn Programming
    • Python Programming
      • Python Basic
      • Python OOP
      • Python Pandas
      • Python PIP
      • Python Advanced
      • Python Selenium
    • Python Examples
    • Selenium Tutorials
      • Selenium with Java
      • Selenium with Python
    • Software Testing Tutorials
    • Java Programming
      • Java Basic
      • Java Flow Control
      • Java OOP
    • C Programming
    • Linux Commands
    • MySQL Commands
    • Agile in Software
    • AngularJS Guides
    • Android Tutorials
  • Interview PrepInterview Prep
    • SQL Interview Questions
    • Testing Interview Q&A
    • Python Interview Q&A
    • Selenium Interview Q&A
    • C Sharp Interview Q&A
    • PHP Interview Questions
    • Java Interview Questions
    • Web Development Q&A
  • Self AssessmentSelf Assessment
    • Python Test
    • Java Online Test
    • Selenium Quiz
    • Testing Quiz
    • HTML CSS Quiz
    • Shell Script Test
    • C/C++ Coding Test
Search
  • Python Multiline String
  • Python Multiline Comment
  • Python Iterate String
  • Python Dictionary
  • Python Lists
  • Python List Contains
  • Page Object Model
  • TestNG Annotations
  • Python Function Quiz
  • Python String Quiz
  • Python OOP Test
  • Java Spring Test
  • Java Collection Quiz
  • JavaScript Skill Test
  • Selenium Skill Test
  • Selenium Python Quiz
  • Shell Scripting Test
  • Latest Python Q&A
  • CSharp Coding Q&A
  • SQL Query Question
  • Top Selenium Q&A
  • Top QA Questions
  • Latest Testing Q&A
  • REST API Questions
  • Linux Interview Q&A
  • Shell Script Questions
© 2024 TechBeamers. All Rights Reserved.
Reading: The Best 20 Python Programs to Print Patterns
Font ResizerAa
TechBeamersTechBeamers
Font ResizerAa
  • Python
  • SQL
  • C
  • Java
  • Testing
  • Selenium
  • Agile Concepts Simplified
  • Linux
  • MySQL
  • Python Quizzes
  • Java Quiz
  • Testing Quiz
  • Shell Script Quiz
  • WebDev Interview
  • Python Basic
  • Python Examples
  • Python Advanced
  • Python OOP
  • Python Selenium
  • General Tech
Search
  • Programming Tutorials
    • Python Tutorial
    • Python Examples
    • Java Tutorial
    • C Tutorial
    • MySQL Tutorial
    • Selenium Tutorial
    • Testing Tutorial
  • Top Interview Q&A
    • SQL Interview
    • Web Dev Interview
  • Best Coding Quiz
    • Python Quizzes
    • Java Quiz
    • Testing Quiz
    • ShellScript Quiz
Follow US
© 2024 TechBeamers. All Rights Reserved.
Python BasicPython ExamplesPython Tutorials

The Best 20 Python Programs to Print Patterns

Last updated: Nov 28, 2023 11:42 pm
By Meenakshi Agarwal
Share
21 Min Read
20 Pattern Programs in Python
SHARE

This tutorial brings you the best 20 Python programs to print patterns like a square, triangle, diamond, alphabet, and Pascal triangle using stars, letters, and numbers. If you are a beginner to programming, then practicing these programs to print patterns is the fastest way to learn Python.

Contents
Print Square and Rectangle PatternsPython Programs to Print Triangle and Pyramid PatternsPrint Diamond Patterns in Python Using For LoopNumber Pattern ProgramsPrint Pascal’s Triangle in Python Using For LoopPython Programs to Print Arrow PatternsPrinting Letter Patterns in Python3 Most Popular Design Pattern Programs to Print Shapes10 One-Liner Tips to Get Better at Printing PatternsA few logical ones

Python is popular because of its simplicity and versatility, making it an excellent choice for those taking their first steps in coding. To get you started, here’s a collection of beginner-friendly Python pattern programs. These star patterns are not only fun to create but also serve as a practical way to understand the basics of loops and logic in Python. From classic shapes like squares and triangles to more complex designs such as Pascal’s Triangle and letter patterns, this set has something for everyone. Let’s dive in and enjoy the art of coding through patterns!

20 Best Python Programs to Print Patterns with Full Code

In programming, a star pattern refers to a design or shape created by using asterisk (*) characters. Star patterns are a common exercise for beginners to practice control structures like loops and conditional statements like if-else in Python.

A star pattern typically consists of rows and columns of asterisks, with different arrangements to form various shapes or designs. Such a pattern can be symmetrical or asymmetrical. It can include patterns like right-angled triangles, squares, rectangles, diamonds, and more.

Star patterns are a fun way to understand the logic of loops and conditional statements while creating visual and artistic designs in the console or on paper.

Must Try: Practice with 40 Python Exercises for Beginners

Print Square and Rectangle Patterns

Star, diamond, triangle, and more programs to print patterns in Python

It is about creating designs that look like squares and rectangles using numbers or characters. These patterns help practice coding and create simple, geometric shapes.

  1. Square pattern
# Define the number of X and Y.
l = 6

# Create a nested for loop to iterate through the X and Y.
for x in range(l):
  for y in range(l):
    print('*', end='')
  print()
  1. Hollow square pattern
Print hollow square pattern in Python
def make_holo_square(l):
    if l < 3:
        print("Too small size. Provide a larger value.")
        return

    for x in range(l):
        for y in range(l):
            if x == 0 or x == l - 1 or y == 0 or y == l - 1:
                print("*", end=" ")
            else:
                print(" ", end=" ")
        print()

l = 7  # Adjust the if you wish to.

make_holo_square(l)
  1. Solid rectangle pattern
def make_sol_rect(p, q):
    if p < 1 or q < 1:
        print("Both p & q must be +ve numbers.")
        return

    for x in range(p):
        for y in range(q):
            print("*", end=" ")
        print()

p = 5  # Num Ps
q = 7  # Num Qs

make_sol_rect(p, q)
  1. Hollow rectangle pattern
p = 6
q = 6
for x in range(p):
   if x == 0 or x == p - 1:
       print('*' * q)
   else:
       print('*' + ' ' * (q - 2) + '*')

You can print the same shape using the below one line of code:

w = 6; h = 6
print('\n'.join(['*' * w if i in {0, h - 1} else '*' + ' ' * (w - 2) + '*' for i in range(h)]))

Python Programs to Print Triangle and Pyramid Patterns

Triangle patterns in programming are like stacking numbers or characters in a triangle shape. They are a helpful tool for learning coding. You can have different types of triangles, like ones that go down, ones that go up, and others that have spaces in them. In short, it’s a fun way to practice with triangle patterns. Here, we provide multiple Python programs using very minimal steps to print a triangle and pyramid pattern using for loop.

Python Programs to Print Triangle and Pyramid Patterns
  1. Right-angled triangle pattern
l = 7
for x in range(1, l + 1):
   print('*' * x)

More so, you can even create the same formation with a single line of code using the Python join method.

l = 7
print('\n'.join(['*' * (i + 1) for i in range(l)]))
  1. Reverse right-angled triangle pattern
l = 7
for x in range(l, 0, -1):
   print('*' * x)

Another piece of code to do this is:

l = 7
print('\n'.join(['*' * (l - i) for i in range(l)]))
  1. Full and Half pyramid patterns

This code will draw a half-pyramid shape.

l = 5
for x in range(1, l + 1):
   print('*' * x)
for x in range(l - 1, 0, -1):
   print('*' * x)

Here is a one-liner Python instruction to print the full pyramid shape.

l = 7
print('\n'.join([' ' * (l - ix - 1) + '*' * (2 * ix + 1) for ix in range(l)]))
  1. Inverted half-pyramid pattern
l = 5
for x in range(l, 0, -1):
   print('*' * x)
  1. Hollow right-angled triangle pattern
l = 5
for x in range(l):
   if x == l - 1 or x == 0:
       print('*' * (x + 1))
   else:
       print('*' + ' ' * (x - 1) + '*')

We tried to add multiple programs in each category. Here are additional patterns for the next set of categories:

Print Diamond Patterns in Python Using For Loop

Not to mention that diamond patterns in programming are shapes that look like diamonds. They are made by arranging numbers or characters in a specific way. Diamond patterns are often used for learning programming and can be a fun way to practice coding. Here are two examples of printing a diamond pattern in both solid and hollow forms using Python for loop.

Print Diamond Patterns in Python Using For Loop
  1. Diamond pattern-I (Solid)
l = 5
for x in range(1, l + 1):
   print(' ' * (l - x) + '*' * (2 * x - 1))
for y in range(l - 1, 0, -1):
   print(' ' * (l - y) + '*' * (2 * y - 1))

You can print the same solid diamond shape with the following code:

l = 5
print('\n'.join([' ' * (l - ix - 1) + '*' * (2 * ix + 1) for ix in range(l)] + [' ' * (l - ix - 1) + '*' * (2 * ix + 1) for ix in range(l - 2, -1, -1)]))
  1. Diamond pattern-II (Hollow )
l = 5
for x in range(1, l + 1):
    for y in range(1, l - x + 1):
        print(" ", end="")
    for y in range(1, 2 * x):
        if y == 1 or y == 2 * x - 1:
            print("*", end="")
        else:
            print(" ", end="")
    print()
for x in range(l - 1, 0, -1):
    for y in range(1, l - x + 1):
        print(" ", end="")
    for y in range(1, 2 * x):
        if y == 1 or y == 2 * x - 1:
            print("*", end="")
        else:
            print(" ", end="")
    print()

Number Pattern Programs

In programming, a number pattern refers to a specific arrangement of numbers, often in a geometric or mathematical shape. These patterns make use of loops and conditional statements for dynamic formation.

Number patterns can range from simple to complex and can include various shapes, such as triangles, squares, rectangles, diamonds, and more. It is very common to use them for teaching coding concepts, learning loop structures, and exercising mathematical principles. They can be a fun way to explore and test your Python programming skills.

Geometric or mathematical shapes using numbers
  1. Right-angled number triangle
l = 5
for x in range(1, l + 1):
   for y in range(1, x + 1):
       print(y, end=" ")
   print()
  1. Prime Number Pattern
lns = 5
cur_no = 2  # Take 2 as the first num

for ln in range(1, lns + 1):
    for position in range(1, ln + 1):
        while True:
            prime_no = True
            for ix in range(2, int(cur_no ** 0.5) + 1):
                if cur_no % ix == 0:
                    prime_no = False
                    break
            if prime_no:
                break
            cur_no += 1

        print(cur_no, end=" ")
        cur_no += 1
    print()
  1. Fibonacci Number Pattern
l = 5
a, b = 0, 1
for x in range(l):
    for y in range(x + 1):
        print(a, end=" ")
        a, b = b, a + b
    print()

Print Pascal’s Triangle in Python Using For Loop

Pascal’s Triangle patterns in programming create a special triangular arrangement of numbers. Nonetheless, creating this pattern is a great way to exercise your mathematical and logical thinking. In this Python program, we made a function using a for loop to print the Pascal triangle.

Pascal's Triangle (alternative way)
  1. Pascal’s Triangle (plus an alternative way)
def gene_pasc_tri(l):
   tri = []
   for ln in range(l):
       r = []
       for x in range(ln + 1):
           if x == 0 or x == ln:
               r.append(1)
           else:
               pr = tri[ln - 1]
               r.append(pr[x - 1] + pr[x])
       tri.append(r)

   max_width = len(" ".join(map(str, tri[-1])))
   for r in tri:
       print(" ".join(map(str, r)).center(max_width))

gene_pasc_tri(9)

Here is one more code to print this shape using the comb method from math lib. It ensures the shape shows perfectly by double-checking the padding.

from math import comb

l = 7

def show_pascal(l):
    w = len(str(comb(l - 1, l // 2)))  # Calculate max width for padding

    for ix in range(l):
        row = ' '.join(str(comb(ix, j)).center(w) for j in range(ix + 1))
        print(row.center(l * w + (l - 1)))

show_pascal(l)

Python Programs to Print Arrow Patterns

Arrow pattern programs in programming create shapes that look like arrows. They require arranging characters in a specific way and a nice way to learn coding.

Arrow Shape Formation
  1. Hollow arrow pattern
l = 5
for x in range(l):
    for y in range(x + 1):
        if y == 0 or y == x or x == l - 1:
            print('*', end=" ")
        else:
            print(' ', end=" ")
    print()

for x in range(l - 2, -1, -1):
    for y in range(x + 1):
        if y == 0 or y == x or x == l - 1:
            print('*', end=" ")
        else:
            print(' ', end=" ")
    print()
  1. A perfect bow pattern
l = 7

# Top edge of the bow
for x in range(l // 2):
    for y in range(l):
        if y == l // 2 or (x + y) == l // 2 or (y - x) == l // 2:
            print('*', end=" ")
        else:
            print(' ', end=" ")
    print()

# Middle of the bow
for x in range(l // 2):
    for y in range(l):
        if y == l // 2:
            print('*', end=" ")
        else:
            print(' ', end=" ")
    print()

# Bottom side of the bow
for x in range(l // 2 - 1, -1, -1):
    for y in range(l):
        if y == l // 2 or (x + y) == l // 2 or (y - x) == l // 2:
            print('*', end=" ")
        else:
            print(' ', end=" ")
    print()

Printing Letter Patterns in Python

Letter pattern programs in programming are designs that use letters of the alphabet. They help learn coding and create artistic shapes with letters.

Printing Letter Patterns in Python
  1. The letter “X” pattern
l = 7
for x in range(l):
   for y in range(l):
       if y == x or y == l - x - 1:
           print('*', end='')
       else:
           print(' ', end='')
   print()
  1. The letter “P” pattern
def print_p_pattern(l):
  """Prints a P pattern of length l."""

  # Use a nested for loop and traverse the rows as well as columns.
  for x in range(l):
    for y in range(l):
      # Print the P pattern.
      if (y == 0 or (x == 0 or x == l // 2) and y > 0 and y < l - 1) or (y == l - 1 and x > 0 and x < l // 2):
        print('*', end='')
      else:
        print(' ', end='')

    print()

# Printing a P pattern of length 7.
print_p_pattern(7)
  1. Interlocking Letter S Pattern
def gen_interlock_s(r):
    if r % 2 == 0:
        r += 1  # Make sure odd no. of rows for the symm. pattern

    for x in range(r):
        for y in range(r):
            if (x == 0 or x == r - 1 or x == r // 2) and y < r - 1:
                print("*", end=" ")
            elif (x < r // 2 and y == 0) or (x > r // 2 and y == r - 1):
                print("*", end=" ")
            else:
                print(" ", end=" ")
        print()

r = 7  # Alter the no. of rows as you need
gen_interlock_s(r)

I hope these additional patterns are useful.

3 Most Popular Design Pattern Programs to Print Shapes

Since you’ve come this far, it itself shows you have grown up coding skills now. So, this is the right time, we introduce you to the world of design patterns that aim to solve common use cases. For the purpose and scope of this tutorial, we picked the top 3 of them illustrating the printing of a few simple shapes. However, you are free to modify the below codes at will.

In order to write the below programs, we’ve used classes, refer to our post on “Python classes: Everything you need to know” if you are new to using OOPs.

  1. Design Pattern: Factory Method (for pattern creation)

Description: The Factory Method is a pattern that acts as a blueprint for creating objects. However, it lets subclasses create the kind of objects they need.

Python code:

class PatternFactory:
    @staticmethod
    def create_pattern(pat_type, l):
        if pat_type == 'rt_triangle':
            return '\n'.join(['*' * (ix + 1) for ix in range(l)])
        # Add more pattern types here

pat = PatternFactory.create_pattern('rt_triangle', 5)
print(pat)
  1. Design Pattern: Singleton (for pattern printing utility)

Description: The Singleton design pattern guarantees that a class has a sole instance and offers a universal entry point to it.

Python code:

def singleton(cls):
    instances = {}
    def get_instance(*args, **kwargs):
        if cls not in instances:
            instances[cls] = cls(*args, **kwargs)
        return instances[cls]
    return get_instance

@singleton
class PatternPrint:
    def print_pat(self, pat):
        print(pat)

pr = PatternPrint()
pr.print_pat('\n'.join(['*' * (ix + 1) for ix in range(5)]))
  1. Design Pattern: Adapter (for adapting different pattern interfaces)

Description: An adapter is a design pattern that allows one class’s interface to work seamlessly with another class’s interface, enabling them to collaborate without any alterations to the original code.

Python code:

class NewPattern:
    def create(self, l):
        return '\n'.join(['*' * (ix + 1) for ix in range(l)])

class OldPatternAdaper:
    def __init__(self, old_pat):
        self.old_pat = old_pat
    
    def create(self, n):
        return self.old_pat(n)

new_pat = NewPattern()
old_pat = OldPatternAdaper(new_pat.create)
print(old_pat.create(5))

These tips cover a variety of common pattern printing scenarios and demonstrate the use of design patterns in pattern generation and printing where applicable.

Also Check: The Best 30 Python Coding Tips and Tricks

10 One-Liner Tips to Get Better at Printing Patterns

Here are 10 tips that help in coding that a programmer can refer to write better code while printing patterns:

  1. Use nested loops to control the number of rows and columns in the pattern.
  2. Use list comprehensions to generate lists of characters to print.
  3. Call str.join() method to concatenate strings to form a pattern.
  4. Try str.center() method to center a string within a specified width.
  5. Use the str.ljust() and str.rjust() methods to justify a string to the left or right, respectively.
  6. Apply the f-strings format to embed expressions within strings.
  7. Call the zip() function to iterate over multiple lists in parallel.
  8. Use the enumerate() function to get the index and value of each element in a list.
  9. Follow the Factory pattern to create different types of patterns based on a given input.
  10. Use the Decorator pattern to add additional functionality to existing patterns.

A few logical ones

In addition to these general tips, here are some specific tips for printing patterns in Python:

  • Call the print() function to print each row of the pattern on a new line.
  • Use whitespace to format the pattern and make it more readable.
  • Use variables to store the number of rows and columns in the pattern. This will make your code more amicable and reusable.
  • Define functions to encapsulate the logic for printing different types of patterns. This will make your code more modular and easier to maintain.
  • Test your code thoroughly to make sure that it is printing the correct patterns.

Conclusion

Congratulations on exploring these Python star patterns for beginners! These fun shapes and designs are like building blocks for your coding journey. As you’ve worked through squares, triangles, and more, you’ve learned the basics of loops and logic. The key to getting better at coding is practice, so keep tinkering with these patterns, create your unique ones, and watch your skills grow. With time, patience, and your creative touch, you’ll continue to unlock the exciting world of Python and coding. Keep coding, keep learning, and enjoy your adventures in the world of programming!

You Might Also Like

How to Connect to PostgreSQL in Python

Generate Random IP Address (IPv4/IPv6) in Python

Python Remove Elements from a List

How to Use Extent Report in Python

10 Python Tricky Coding Exercises

Meenakshi Agarwal Avatar
By Meenakshi Agarwal
Follow:
Hi, I'm Meenakshi Agarwal. I have a Bachelor's degree in Computer Science and a Master's degree in Computer Applications. After spending over a decade in large MNCs, I gained extensive experience in programming, coding, software development, testing, and automation. Now, I share my knowledge through tutorials, quizzes, and interview questions on Python, Java, Selenium, SQL, and C# on my blog, TechBeamers.com.
Previous Article SQL Programming Test in 2023 SQL Programming Test in 2024
Next Article Understand the Difference Between ChatGPT and GPT-4 Do You Know the Difference Between ChatGPT and GPT-4?

Popular Tutorials

SQL Interview Questions List
50 SQL Practice Questions for Good Results in Interview
SQL Interview Nov 01, 2016
Demo Websites You Need to Practice Selenium
7 Sites to Practice Selenium for Free in 2024
Selenium Tutorial Feb 08, 2016
SQL Exercises with Sample Table and Demo Data
SQL Exercises – Complex Queries
SQL Interview May 10, 2020
Java Coding Questions for Software Testers
15 Java Coding Questions for Testers
Selenium Tutorial Jun 17, 2016
30 Quick Python Programming Questions On List, Tuple & Dictionary
30 Python Programming Questions On List, Tuple, and Dictionary
Python Basic Python Tutorials Oct 07, 2016
//
Our tutorials are written by real people who’ve put in the time to research and test thoroughly. Whether you’re a beginner or a pro, our tutorials will guide you through everything you need to learn a programming language.

Top Coding Tips

  • PYTHON TIPS
  • PANDAS TIPSNew
  • DATA ANALYSIS TIPS
  • SELENIUM TIPS
  • C CODING TIPS
  • GDB DEBUG TIPS
  • SQL TIPS & TRICKS

Top Tutorials

  • PYTHON TUTORIAL FOR BEGINNERS
  • SELENIUM WEBDRIVER TUTORIAL
  • SELENIUM PYTHON TUTORIAL
  • SELENIUM DEMO WEBSITESHot
  • TESTNG TUTORIALS FOR BEGINNERS
  • PYTHON MULTITHREADING TUTORIAL
  • JAVA MULTITHREADING TUTORIAL

Sign Up for Our Newsletter

Subscribe to our newsletter to get our newest articles instantly!

Loading
TechBeamersTechBeamers
Follow US
© 2024 TechBeamers. All Rights Reserved.
  • About
  • Contact
  • Disclaimer
  • Privacy Policy
  • Terms of Use
TechBeamers Newsletter - Subscribe for Latest Updates
Join Us!

Subscribe to our newsletter and never miss the latest tech tutorials, quizzes, and tips.

Loading
Zero spam, Unsubscribe at any time.
x