The algorithm to print pattern using for loop in Python:

We need to use two for loops to print pattern, i.e. nested loops.
There is a typical structure to print any pattern, i.e. the number of rows and column in the pattern. Outer loop tells us the number of rows used and inner loop tells us the column used to print pattern.
  • Accept the number rows user want to print in the pattern.
  • Iterate those number using outer for loop to handle the number of rows.
  • Inner loop to handle the number of columns. Inner loop iteration depends on the values of the outer loop.
  • Print start, number, asterisk, Pyramid and diamond pattern using the print() function.
  • Add a new line after each row, i.e. after each iteration of outer for loop so you can display pattern appropriately.

Print Number pattern in Python

We created multiple examples which print different styles of number pattern. Let see them one by one.
Example 1: – Print a number pattern using a for loop and range function. Let see the demo.
  • # 10 is the total number to print
  • for num in range(10):
  • for i in range(num):
  • print (num, end=" ") #print number
  • # new line after each row to display pattern correctly
  • print("\n")
Output:  Execute Online
  • 1
  • 2 2
  • 3 3 3
  • 4 4 4 4
  • 5 5 5 5 5
  • 6 6 6 6 6 6
  • 7 7 7 7 7 7 7
  • 8 8 8 8 8 8 8 8
  • 9 9 9 9 9 9 9 9 9
Number Pattern Example 2: Triangular half pyramid number pattern
  • print("Second Number Pattern ")
  • lastNumber = 6
  • for row in range(1, lastNumber):
  • for column in range(1, row + 1):
  • print(column, end=' ')
  • print("")
Output:  Execute Online
  • Second Number Pattern
  • 1
  • 1 2
  • 1 2 3
  • 1 2 3 4
  • 1 2 3 4 5
Number Pattern Example 3:
  • print("Third Number Pattern")
  • lastNumber = 6
  • for row in range(1, lastNumber):
  • for column in range(row, 0, -1):
  • print(column, end=' ')
  • print("")
Output:  Execute Online
  • Third Number Pattern
  • 1
  • 2 1
  • 3 2 1
  • 4 3 2 1
  • 5 4 3 2 1
Number Pattern Example 4:
  • print("Fourth Number Pattern")
  • lastNumber = 9
  • for i in range(1, lastNumber):
  • for j in range(-1+i, -1, -1):
  • print(format(2**j, "4d"), end=' ')
  • print("")
Output: Execute Online
  • Fourth Number Pattern
  • 1
  • 2 1
  • 4 2 1
  • 8 4 2 1
  • 16 8 4 2 1
  • 32 16 8 4 2 1
  • 64 32 16 8 4 2 1
  • 128 64 32 16 8 4 2 1
Number Pattern Example 5:
  • print("Fifth Number Pattern")
  • lastNumber = 9
  • for i in range(1, lastNumber):
  • for i in range(0, i, 1):
  • print(format(2**i, "4d"), end=' ')
  • for i in range(-1+i, -1, -1):
  • print(format(2**i, "4d"), end=' ')
  • print("")
Output:  Execute Online
  • Fifth Number Pattern
  • 1
  • 1 2 1
  • 1 2 4 2 1
  • 1 2 4 8 4 2 1
  • 1 2 4 8 16 8 4 2 1
  • 1 2 4 8 16 32 16 8 4 2 1
  • 1 2 4 8 16 32 64 32 16 8 4 2 1
  • 1 2 4 8 16 32 64 128 64 32 16 8 4 2 1
Number Pattern Example 6
  • print("Sixth Number Pattern")
  • currentNumber = 1
  • stop = 2
  • rows = 3 # Rows you want in your pattern

  • for i in range(rows):
  • for column in range(1, stop):
  • print(currentNumber, end=' ')
  • currentNumber += 1
  • print("")
  • stop += 2
Output: Execute Online
  • 1
  • 2 3 4
  • 5 6 7 8 9
Numbers Pattern Example 7:
  • print("Number Pattern Example 7")
  • start = 1
  • stop = 2
  • currentNumber = stop
  • for row in range(2, 6):
  • for col in range(start, stop):
  • currentNumber -= 1
  • print (currentNumber, end=' ')
  • print("")
  • start = stop
  • stop +=row
  • currentNumber = stop
Output:  Execute Online
  • Number Pattern Example 7
  • 1
  • 3 2
  • 6 5 4
  • 10 9 8 7

Print Pyramid and Asterisk pattern in Python

Let’ see now how t print pyramid and asterisk(star) patterns in Python. Here we will print the following pyramid pattern using an asterisk.
  • Half pyramid Pattern
  • Full pyramid Pattern
  • Inverted pyramid Pattern
  • Asterisk triangle pattern in python
Example 1: Program to print Full Triangle Pyramid pattern using an asterisk (star)
  • print("Print full Triangle pyramid using stars ")
  • size = 7
  • m = (2 * size) - 2
  • for i in range(0, size):
  • for j in range(0, m):
  • print(end=" ")
  • m = m - 1 # decrementing m after each loop
  • for j in range(0, i + 1):
  • # printing full Triangle pyramid using stars
  • print("* ", end=' ')
  • print(" ")
Output:  Execute Online
  • Print full Triangle pyramid using stars
  • *
  • * *
  • * * *
  • * * * *
  • * * * * *
  • * * * * * *
  • * * * * * * *
Example 2: Program to print half pyramid pattern using an asterisk (star)
  • print("Program to print half pyramid: ");

  • rows = input("Enter number of rows ")
  • rows = int (rows)

  • for i in range (0, rows):
  • for j in range(0, i + 1):
  • print("*", end=' ')

  • print("\r")
Output:  Execute Online
  • Program to print half pyramid:
  • Enter number of rows 4
  • *
  • * *
  • * * *
  • * * * *
Example 3: Program to print inverted half pyramid using an asterisk (star)
  • print("Program to print half pyramid: ")

  • rows = input("Enter number of rows ")
  • rows = int (rows)

  • for i in range (rows,0,-1):
  • for j in range(0, i + 1):
  • print("*", end=' ')

  • print("\r")
Output:  Execute Online
  • Program to print half pyramid:
  • Enter number of rows 5
  • * * * * * *
  • * * * * *
  • * * * *
  • * * *
  • * *
Example 4: print Asterisk (Start) pattern
  • print("Program to print start pattern: \n");

  • rows = input("Enter max star to be display on single line")
  • rows = int (rows)
  • for i in range (0, rows):
  • for j in range(0, i + 1):
  • print("*", end=' ')
  • print("\r")

  • for i in range (rows, 0, -1):
  • for j in range(0, i -1):
  • print("*", end=' ')
  • print("\r")
Execute OnlineOutput: 
  • Program to print start pattern:

  • Enter max star to be display on single line 4
  • *
  • * *
  • * * *
  • * * * *
  • * * *
  • * *
  • *
Example 5: to print an inverted half pyramid pattern using a number
  • print("Program to print half pyramid: ")

  • rows = input("Enter number of rows ")
  • rows = int (rows)

  • for i in range (rows,0,-1):
  • for j in range(0, i + 1):
  • print(j, end=' ')

  • print("\r")
Output:  Execute Online
  • Program to print half pyramid:
  • Enter number of rows 5
  • 0 1 2 3 4 5
  • 0 1 2 3 4
  • 0 1 2 3
  • 0 1 2
  • 0 1

Print Alphabets and Letters pattern in python

We are using an ASCII value of a letter,  so we can convert ASCII value to a character to print it on screen. let’ see now how to print Alphabets and Letters patterns in Python with examples.
  • print("Print Alphabets and Letters pattern in python ")
  • lastNumber = 6
  • asciiNumber = 65
  • for i in range(0, lastNumber):
  • for j in range(0, i+1):
  • character = chr(asciiNumber)
  • print(character, end=' ')
  • asciiNumber+=1
  • print(" ")
Output:  Execute Online
  • Print Alphabets and Letters pattern in python
  • A
  • B C
  • D E F
  • G H I J
  • K L M N O
  • P Q R S T U
Also see how to calculate sum and average in Python.

Conclusion and Next Steps

Practice Problem: Print the following Pattern
  • 0
  • 2 4
  • 4 8 8
  • 8 16 16 16







Related Articles

Python Exercises
Python Tricks
Join Our Newsletter



Signup today and receive New Python Articles, Exercises, Tips and Tricks straight in your inbox Every WEEK!
We take your privacy seriously. No spam Ever!. Unsubscribe any time!
Keep Reading

Reader Interactions

Comments

    • num=int(input(“enter no. of rows : “))
      for i in range(num):
      val=i+1
      for j in range(i+1):
      print(format(val, “<4"), end="")
      val=val+((num-1)-j)
      print()
      enter no. of rows : 5
      1
      2 6
      3 7 10
      4 8 11 13
      5 9 12 14 15
      • for i in range(4):
        for j in range(4-i):
        print(chr(65+i),end=”)
        for j in range(4-i):
        print(“*”,end=”)
        for j in range(4-i):
        print(chr(65+i),end=”)
        print(‘\n’,end=”)
      • counter = 4
        char = [” “,”D”,”C”,”B”,”A”]
        while counter !=0:
        out1 = char[counter] * counter
        out2 = “*” * counter
        print(out1 + out2 + out1)
        counter -=1
      • n=5
        for i in range(0,n):
        print(chr(65+i)*(n-i), end=””)
        print(“*”*(n-i), end=””)
        print(chr(65+i)*(n-i), end=””)
        print()
        AAAA****AAAA
        BBB***BBB
        CC**CC
        D*D
    • star = ‘*’
      counter = 1
      out = 0
      print(“Pattern1”)
      while counter < 6:
      out = counter * star
      print(out)
      counter +=1
      counter = 5
      while counter !=0:
      out = counter * star
      print(out)
      counter -=1
        • Vishal, how to do this pattern in python?
          ———.|.———
          ——.|..|.|..|.——
          —.|..|..|..|..|.—
          ——-WELCOME——-
          —.|..|..|..|..|.—
          ——.|..|.|..|.——
          ———.|.———
    • n=int(input(“enter the number”))
      for i in range(1,n+1):
      s= ‘*’*i
      print(s)
      for j in range(n+1,1,-1):
      y = ‘*’ * j
      print(y)
    • n = int(input(“enter a num”))
      i=1
      while i<=n :
      print("*"*i)
      i+=1
      j=1
      while j<=n :
      print("*"*(n-j))
      j+=1
      enter a num6
      *
      **
      ***
      ****
      *****
      ******
      *****
      ****
      ***
      **
      *
    • num=int(input(‘Enter a number: ‘))
      while num<=0:
      print('Error! Enter a positive number: ')
      num=int(input('Enter a number: '))
      for row in range (num):
      for col in range (row):
      print('*', end='')
      print()
      for i in range (num,0,-1):
      for j in range (i):
      print('*', end='')
      print()
        • n = int(input(“enter a num”))
          for i in range(1,n):
          for j in range(1,i+1):
          print(j,end=””)
          print()
          for i in range(n,0,-1):
          for j in range(1,i+1):
          print(j,end=””)
          print()
          enter a num3
          1
          12
          123
          12
          1
    • n = int(input(“enter a num”))
      i=1
      while i<=n :
      print("* "*i)
      i+=1
      j=1
      while j<=n :
      print("* "*(n-j))
      j+=1
      *
      * *
      * * *
      * * * *
      * * * * *
      * * * * * *
      * * * * * * *
      * * * * * *
      * * * * *
      * * * *
      * * *
      * *
      *
  1. *********
    how do I make an hourglass shape with stars
    *******
    *****
    ***
    *
    ***
    *****
    *******
    *********
    • s1 = 0
      e1 = 7
      s2 = 0
      e2 = 0
      for x in range(4):
      for y in range(s2,e2):
      print(” “,end=””)
      for z in range(s1,e1):
      print(“*”,end=””)
      print()
      s1 += 1
      e1 -= 1
      e2 += 1
      s1 -= 1
      e1 += 1
      e2 -= 1
      for x in range(3):
      s1 -= 1
      e1 += 1
      e2 -= 1
      for y in range(s2,e2):
      print(” “,end=””)
      for z in range(s1,e1):
      print(“*”,end=””)
      print()
    • # star Program
      def first(n):
      for i in range(0, n):
      for j in range(i,n ):
      print(‘* ‘,end=”)
      print(“\r”)
      for i in range(0, n):
      for j in range(0, i+1):
      print(‘* ‘,end=”)
      print(“\r”)
      inp = input(‘Enter The Numbers Of Rows ‘)
      inp = int(inp)
      first(inp)
    • n=int(input(“enter a number : “))
      for i in range(n,0,-1):
      print(“*”*i)
      for j in range(1,n+1):
      print(“*”*j)
      enter a number : 9
      *********
      ********
      *******
      ******
      *****
      ****
      ***
      **
      *
      *
      **
      ***
      ****
      *****
      ******
      *******
      ********
      *********
    • n=int(input(“enter number : “))
      for i in range(n,0,-1):
      print(“*”*i)
      for j in range(1,n+1):
      print(“*”*j)
      enter number : 9
      *********
      ********
      *******
      ******
      *****
      ****
      ***
      **
      *
      *
      **
      ***
      ****
      *****
      ******
      *******
      ********
      *********
    • previews commented wrong code by mistake
      n=int(input(“enter a number : “))
      for i in range(n,0,-2):
      print(“*”*i)
      for j in range(2,n+1,2):
      print(“*”*j)
      *********
      *******
      *****
      ***
      *
      **
      ****
      ******
      ********
    • x = int(input(“enter no. of rows”))
      n=1
      for i in range(1,x*2,2):
      for j in range(0,i):
      print(n,””,end=””)
      n=n+1
      print()
      enter no. of rows3
      1
      2 3 4
      5 6 7 8 9
    • n=int(input(“enter no.”))
      for i in range(0,n+1):
      for j in range(i,0,-1):
      print(j,end=””)
      print(0,end=””)
      for k in range(1,i+1):
      print(k,end=””)
      print()
      enter no.5
      0
      101
      21012
      3210123
      432101234
      54321012345
  2. hey, can anyone help me with this code. It must be done using for and if only.
    0
    1 0 1
    2 1 0 1 2
    3 2 1 0 1 2 3
    4 3 2 1 0 1 2 3 4
    I tired and think every stuff but I dont understand what i am missing. I am having a issue with generating 101, 21012, 3210123, 43211234
    here is my code(which is wrong)
    for i in range (1,6):
    for t in range (i,5):
    print(‘\t’, end=””)
    for j in range (0,(2*i-1)):
    print(2*i-1-j, “\t”, end=””)
    print(“”)
  3. Hello,
    How do you write this function using recursion?
    print(“Program to print start pattern: \n”);
    rows = input(“Enter max star to be display on single line”)
    rows = int (rows)
    for i in range (0, rows):
    for j in range(0, i + 1):
    print(“*”, end=’ ‘)
    print(“\r”)
    for i in range (rows, 0, -1):
    for j in range(0, i -1):
    print(“*”, end=’ ‘)
    print(“\r”)
    Thank you,
    Mary
  4. I have some question
    1. why we are using end = ‘ ‘? wht is the purpose of it.
    2. need explanation for 3rd argument in range() ex- rage(1, 11, -1)
    • Hi Sohair, end = ‘ ‘ used to have space between numbers or stars.
      For example, if we executing loop 5 times and in each iteration we are printing
      print("*", end=', ') this statemment. this will print *,*,*,*,*
      For second question range(11, 1, -1) this will print range in reverse order. i.e. 11, 10, 9....0 For better understanding on range function please refer to Python range() function
  5. How can I print this? has to work on Edhesive python
    THIRD
    *
    * *
    * * *
    * * * *
    * * * * *
    * * * * * *
    * * * * * * *
    * * * * * * * *
    * * * * * * * * *
    Here is the basis code to use:
    for i in range(3):
    for j in range(3-i):
    print(“*”, end=” “)
    print(“”)
  6. -*******
    –******
    —*****
    —-****
    —–***
    ——**
    ——-+
    plz kindly tell me how to make this?
    • n=5
      for i in range(1,n+1):
      for j in range(1):
      print((2*i-1)*”*”,end=””)
      print()
    • n=5
      for i in range(n):
      for j in range(n):
      if j==i:
      print(“1″,end=””)
      else:
      print(“0″,end=””)
      print()
    • for i in range(1,n+1):
      for j in range(1):
      if i==1:
      print(i*”*”,end=””)
      else:
      print(2*”*”,end=””)
      print()
  7. 1 2 3 4 5 6 7 8 9
    2 3 4 5 6 7 8
    3 4 5 6 7
    4 5 6
    5
    what is the code for this pattern in python
  8. 1 2 3 4 5 6 7 8 9
    **2 3 4 5 6 7 8
    ****3 4 5 6 7
    ******4 5 6
    ********5
    what is the code for this pattern in python
  9. *******O**
    ******O***
    ******O***
    *O********
    *****O****
    How do make this 5 * 10 grid by using random function and each row have only one ‘O’ and the position are random?
  10. Program for this output Write a program to print the following  pattern:
    1
    2     2
    3     3     3
      4    4    4    4
  11. 1
    1 2 1
    1 2 3 2 1
    1 2 1
    1
    please help me to write “”bottom part of this diamond of numbers””

Leave a Reply

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








Comments