How to print pattern in Python

Printing patterns in Python involves using loops (primarily nested loops) to create structured outputs, such as triangles, diamonds, or other shapes. Let’s break it down step by step.

Steps to Print Patterns

1. Understand the Pattern Structure

First, observe the pattern. For example:

*
**
***
****
  • It has 4 rows.
  • The number of stars in each row equals the row number.

2. Divide the Pattern into Rows and Columns

  • Rows are the count of lines in the pattern.
  • Columns are how many characters-say, * or space-will be present in each row.

3. Use Nested Loops

  • The outer loop manages rows.
  • The inner loop manages columns or prints the characters for each row.

4. Print Characters Without Ending

Use print(item, end="") to stay on the same line while printing characters.

5. Add a Newline After Each Row

Once the inner loop is completed, use print() to move to the next line.

Example Patterns

1. Right-Angle Triangle of Stars

rows = 5  # Number of rows

for i in range(1, rows + 1):  # Outer loop for rows
    for j in range(1, i + 1):  # Inner loop for columns
        print("*", end="")  # Print star without newline
    print()  # Move to the next line after each row

Explanation:

  • Outer loop (for i in range(1, rows + 1)) runs 5 times; rows = 5. Each iteration is one row.
  • Inner loop (for j in range(1, i + 1)) prints i stars for the i-th row.
  • The print() statement at the end of the outer loop prints to the next line after it has printed all the stars for a row.

Output:

*
**
***
****
*****

Explanation of Output:

  • Row 1: 1 star.
  • Row 2: 2 stars.
  • Row 3: 3 stars.
  • Row 4: 4 stars.
  • Row 5: 5 stars.

2. Inverted Right-Angle Triangle

rows = 5

for i in range(rows, 0, -1):  # Outer loop from rows to 1
    for j in range(1, i + 1):  # Inner loop for columns
        print("*", end="")
    print()  # Move to the next line

Explanation:

  • Outer loop ( for i in range(rows, 0, -1) ) begins at 5 and counts down to 1, which fixes the row count.
  • Inner loop ( for j in range(1, i + 1)) prints i stars in each row.
  • The print() after the inner loop moves to the next line.

Output:

*****
****
***
**
*

Explanation of Output:

  • Row 1: 5 stars.
  • Row 2: 4 stars.
  • Row 3: 3 stars.
  • Row 4: 2 stars.
  • Row 5: 1 star.

3. Pyramid Pattern

rows = 5

for i in range(1, rows + 1):
    # Print spaces
    for j in range(rows - i):
        print(" ", end="")
    # Print stars
    for j in range(2 * i - 1):
        print("*", end="")
    print()  # Move to the next line

Explanation:

  • Outer loop (for i in range(1, rows + 1)) runs for each row from 1 to 5.
  • First inner loop (for j in range(rows - i)) draws spaces. The number of spaces decreases as the row number increases.
  • Second inner loop (for j in range(2 * i - 1)) is used to print stars. At each row the number of printed stars increases in accordance with formula 2 * i - 1.
  • After each row, print() advances to the next line.

Output:

    *
   ***
  *****
 *******
*********

Explanation of Output:

  • Row 1: 4 spaces + 1 star.
  • Row 2: 3 spaces + 3 stars.
  • Row 3: 2 spaces + 5 stars.
  • Row 4: 1 space + 7 stars.
  • Row 5: 0 spaces + 9 stars.

4. Diamond Pattern

rows = 5

# Upper part
for i in range(1, rows + 1):
    for j in range(rows - i):
        print(" ", end="")
    for j in range(2 * i - 1):
        print("*", end="")
    print()

# Lower part
for i in range(rows - 1, 0, -1):
    for j in range(rows - i):
        print(" ", end="")
    for j in range(2 * i - 1):
        print("*", end="")
    print()

Explanation:

  • Upper Part:
    • The outer loop ( for i in range(1, rows + 1)) runs for each row from 1 to 5.
    • The first inner loop prints spaces before stars.
    • The second inner loop prints stars. The number of stars increases following the formula 2 * i - 1.
  • Lower Part:
    • The outer loop ( for i in range(rows - 1, 0, -1)) runs in reverse, starting from 4 down to 1.
    • Similar inner loops for spaces and stars, but both with decreasing values.

Output:

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

Explanation of Output:

  • Upper Part:
    • Row 1: 4 spaces + 1 star.
    • Row 2: 3 spaces + 3 stars.
    • Row 3: 2 spaces + 5 stars.
    • Row 4: 1 space + 7 stars.
    • Row 5: 0 spaces + 9 stars.
  • Lower Part:
    • Row 6: 1 space + 7 stars.
    • Row 7: 2 spaces + 5 stars.
    • Row 8: 3 spaces + 3 stars.
    • Row 9: 4 spaces + 1 star.

Tips for Writing Patterns

  1. Start Simple: Use simple patterns, like triangles or squares.
  2. Plan the Rows and Columns: Write down the logic for how the number of characters changes row by row.
  3. Understand Space Management: Patterns like pyramids or diamonds often have spaces. Use inner loops to handle spaces.
  4. Use Variables for Flexibility: Use variables like rows to control the size of the pattern easily.