Open In App

Python program to print the Inverted heart pattern

Last Updated : 05 Aug, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Let us see how to print an inverted heart pattern in Python.

Example:

Input: 11
Output:

          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************
*********************
 *********  ********
  *******    ******
   *****      **** 
   
Input: 15
Output:
              *
             ***
            *****
           *******
          *********
         ***********
        *************
       ***************
      *****************
     *******************
    *********************
   ***********************
  *************************
 ***************************
*****************************
 *************  ************
  ***********    **********
   *********      ********
    *******        ******

Approach:

  1. Determine the size of the heart.
  2. Print an inverted triangle with size number of rows.
  3. Print the rest of the heart in 4 segments inside another loop.
  4. Print the white space right-triangle at the beginning.
  5. Print the first trapezium with stars.
  6. Print the white space triangle.
  7. Print the second trapezium with stars.

Python3




# determining the size of the heart
size = 15
 
# printing the inverted triangle
for a in range(0, size):
    for b in range(a, size):
        print(" ", end = "")
    for b in range(1, (a * 2)):
        print("*", end = "")
    print("")
 
# printing rest of the heart
for a in range(size, int(size / 2) - 1 , -2):
 
    # printing the white space right-triangle
    for b in range(1, size - a, 2): 
        print(" ", end = "")
 
    # printing the first trapezium
    for b in range(1, a + 1):
        print("*", end = "")
 
    # printing the white space triangle
    for b in range(1, (size - a) + 1):
        print(" ", end = "")
 
    # printing the second trapezium
    for b in range(1, a):
        print("*", end = "")
 
    # new line
    print("")


Output:

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

 Time complexity: O(S2) for given input size S

Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads