Patterns in Nested For loop || match Case Statement 17th class

Python Pattern Printing Using Nested For Loops

1. Right Triangle Pattern

python

n = 5
for i in range(1, n+1):
    for j in range(1, i+1):
        print("*", end=" ")
    print()
"""
Output:
* 
* * 
* * * 
* * * * 
* * * * * 
"""

2. Inverted Right Triangle

python

n = 5
for i in range(n, 0, -1):
    for j in range(1, i+1):
        print("*", end=" ")
    print()
"""
Output:
* * * * * 
* * * * 
* * * 
* * 
* 
"""

3. Pyramid Pattern

python

n = 5
for i in range(1, n+1):
    # Print spaces
    for j in range(n - i):
        print(" ", end=" ")
    # Print stars
    for k in range(2 * i - 1):
        print("*", end=" ")
    print()
"""
Output:
        * 
      * * * 
    * * * * * 
  * * * * * * * 
* * * * * * * * * 
"""

4. Number Pattern

python

n = 5
for i in range(1, n+1):
    for j in range(1, i+1):
        print(j, end=" ")
    print()
"""
Output:
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
"""

5. Alphabet Pattern

python

n = 5
for i in range(65, 65+n):
    for j in range(65, i+1):
        print(chr(j), end=" ")
    print()
"""
Output:
A 
A B 
A B C 
A B C D 
A B C D E 
"""

6. Diamond Pattern

python

n = 5
# Upper half
for i in range(1, n+1):
print(" "*(n-i) + "* " * i)
# Lower half
for i in range(n-1, 0, -1):
print(" "*(n-i) + "* " * i)
"""
Output:
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
"""

More Python Pattern Examples Using Nested For Loops

1. Hollow Square Pattern

python

n = 5
for i in range(n):
    for j in range(n):
        if i == 0 or i == n-1 or j == 0 or j == n-1:
            print("*", end=" ")
        else:
            print(" ", end=" ")
    print()
"""
Output:
* * * * * 
*       * 
*       * 
*       * 
* * * * * 
"""

2. Right Arrow Pattern

python

n = 5
# Upper half
for i in range(n):
    print("  " * i + "* " * (n - i))
# Lower half
for i in range(2, n+1):
    print("  " * (n - i) + "* " * i)
"""
Output:
* * * * * 
  * * * * 
    * * * 
      * * 
        * 
      * * 
    * * * 
  * * * * 
* * * * * 
"""

3. Pascal’s Triangle

python

n = 5
for i in range(1, n+1):
    num = 1
    for j in range(1, i+1):
        print(num, end=" ")
        num = num * (i - j) // j
    print()
"""
Output:
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
"""

4. Floyd’s Triangle

python

n = 5
num = 1
for i in range(1, n+1):
    for j in range(1, i+1):
        print(num, end=" ")
        num += 1
    print()
"""
Output:
1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
"""

5. Binary Number Pattern

python

n = 5
for i in range(1, n+1):
    for j in range(1, i+1):
        print((i + j) % 2, end=" ")
    print()
"""
Output:
0 
1 0 
0 1 0 
1 0 1 0 
0 1 0 1 0 
"""

6. Cross Pattern

python

n = 5
for i in range(n):
    for j in range(n):
        if i == j or i + j == n - 1:
            print("*", end=" ")
        else:
            print(" ", end=" ")
    print()
"""
Output:
*       * 
  *   *   
    *     
  *   *   
*       * 
"""

7. Heart Pattern

python

n = 6
for i in range(n//2, n, 2):
    for j in range(1, n-i, 2):
        print(" ", end=" ")
    for j in range(1, i+1):
        print("*", end=" ")
    for j in range(1, n-i+1):
        print(" ", end=" ")
    for j in range(1, i+1):
        print("*", end=" ")
    print()

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

8. Hollow Diamond

python

n = 5
# Upper half
for i in range(1, n+1):
for j in range(n - i):
print(" ", end=" ")
for k in range(2 * i - 1):
if k == 0 or k == 2 * i - 2:
print("*", end=" ")
else:
print(" ", end=" ")
print()
# Lower half
for i in range(n-1, 0, -1):
for j in range(n - i):
print(" ", end=" ")
for k in range(2 * i - 1):
if k == 0 or k == 2 * i - 2:
print("*", end=" ")
else:
print(" ", end=" ")
print()
"""
Output:
*
* *
* *
* *
* *
* *
* *
* *
*
"""

Python match Case Statement with Number-to-Month Example

The match statement (introduced in Python 3.10) is a powerful feature that provides pattern matching capabilities similar to switch-case statements in other languages, but more flexible.

Basic Syntax of match Case

python

match subject:
    case pattern1:
        # action1
    case pattern2:
        # action2
    case _:
        # default action

Number to Month Name Program

Here’s a complete example that converts a month number (1-12) to its corresponding month name using match case:

python

def number_to_month(month_num):
    match month_num:
        case 1:
            return "January"
        case 2:
            return "February"
        case 3:
            return "March"
        case 4:
            return "April"
        case 5:
            return "May"
        case 6:
            return "June"
        case 7:
            return "July"
        case 8:
            return "August"
        case 9:
            return "September"
        case 10:
            return "October"
        case 11:
            return "November"
        case 12:
            return "December"
        case _:  # Default case (like 'else')
            return "Invalid month number"

# Test the function
print(number_to_month(3))   # Output: March
print(number_to_month(8))   # Output: August
print(number_to_month(13))  # Output: Invalid month number

Key Features of match Case:

  1. Direct Value Matching: Compares the subject directly with values (like in this month example)
  2. Wildcard Pattern_ acts as a catch-all/default case
  3. No Fall-through: Unlike C-style switch statements, Python doesn’t fall through to the next case
  4. No Break Needed: Each case automatically breaks after execution

Advanced Example with Patterns

You can also use more complex patterns:

python

def describe_number(num):
    match num:
        case 0:
            return "Zero"
        case 1 | 2 | 3:  # Multiple values in one case
            return "Small number"
        case n if 4 <= n <= 9:  # With guard condition
            return "Medium number"
        case n if n >= 10:
            return "Large number"
        case _:
            return "Negative number"

print(describe_number(2))   # Output: Small number
print(describe_number(5))   # Output: Medium number
print(describe_number(15))  # Output: Large number

When to Use match Case:

  • When you have multiple conditions to check against a single value
  • When the conditions are based on value equality (like our month example)
  • When you want cleaner code than multiple if-elif-else statements

Note: The match statement requires Python 3.10 or later. For earlier versions, you would need to use if-elif-else chains or dictionary lookups for similar functionality.

Similar Posts

  • Dictionaries

    Python Dictionaries: Explanation with Examples A dictionary in Python is an unordered collection of items that stores data in key-value pairs. Dictionaries are: Creating a Dictionary python # Empty dictionary my_dict = {} # Dictionary with initial values student = { “name”: “John Doe”, “age”: 21, “courses”: [“Math”, “Physics”, “Chemistry”], “GPA”: 3.7 } Accessing Dictionary Elements…

  • What is Python library Complete List of Python Libraries

    In Python, a library is a collection of pre-written code that you can use in your programs. Think of it like a toolbox full of specialized tools. Instead of building every tool from scratch, you can use the tools (functions, classes, modules) provided by a library to accomplish tasks more efficiently.   Here’s a breakdown…

  • Inheritance in OOP Python: Rectangle & Cuboid Example

    Rectangle Inheritance in OOP Python: Rectangle & Cuboid Example Inheritance in object-oriented programming (OOP) allows a new class (the child class) to inherit properties and methods from an existing class (the parent class). This is a powerful concept for code reusability ♻️ and establishing a logical “is-a” relationship between classes. For instance, a Cuboid is…

  • Random Module?

    What is the Random Module? The random module in Python is used to generate pseudo-random numbers. It’s perfect for: Random Module Methods with Examples 1. random() – Random float between 0.0 and 1.0 Generates a random floating-point number between 0.0 (inclusive) and 1.0 (exclusive). python import random # Example 1: Basic random float print(random.random()) # Output: 0.5488135079477204 # Example…

  • re module

    The re module is Python’s built-in module for regular expressions (regex). It provides functions and methods to work with strings using pattern matching, allowing you to search, extract, replace, and split text based on complex patterns. Key Functions in the re Module 1. Searching and Matching python import re text = “The quick brown fox jumps over the lazy dog” # re.search()…

  • Python Variables: A Complete Guide with Interview Q&A

    Here’s a detailed set of notes on Python variables that you can use to explain the concept to your students. These notes are structured to make it easy for beginners to understand. Python Variables: Notes for Students 1. What is a Variable? 2. Rules for Naming Variables Python has specific rules for naming variables: 3….

Leave a Reply

Your email address will not be published. Required fields are marked *