Skip to content
Related Articles

Related Articles

Python – Print Heart Pattern
  • Last Updated : 24 Feb, 2021

Given an even integer input, the task is to write a Python program to print a heart using loops and mathematical formulations.

Example :

For n = 8

  *   *   *   *   
*       *       * 
*               * 
*     G F G     * 
  *           *   
    *       *     
      *   *       
        *

For n = 14

      * *           * *       
    *     *       *     *     
  *         *   *         *   
*             *             * 
*                           * 
*           G F G           * 
  *                       *   
    *                   *     
      *               *       
        *           *         
          *       *           
            *   *             
              *       

Approach :

The following steps are used :

  • Form the worksheet of n X n+1 using two loops.
  • Apply the if-else conditions for printing stars.
  • Apply the if-else conditions for printing text “GFG”.
  • Apply else condition for rest spaces.

Note: The value of n must be greater than 8

Below is the implementation of the above approach :

Python3




# define size n = even only
n = 8
  
# so this heart can be made n//2 part left,
# n//2 part right, and one middle line
# i.e; columns m = n + 1
m = n+1
  
# loops for upper part
for i in range(n//2-1):
    for j in range(m):
          
        # condition for printing stars to GFG upper line
        if i == n//2-2 and (j == 0 or j == m-1):
            print("*", end=" ")
              
        # condition for printing stars to left upper
        elif j <= m//2 and ((i+j == n//2-3 and j <= m//4) \
                            or (j-i == m//2-n//2+3 and j > m//4)):
            print("*", end=" ")
              
        # condition for printing stars to right upper
        elif j > m//2 and ((i+j == n//2-3+m//2 and j < 3*m//4) \
                           or (j-i == m//2-n//2+3+m//2 and j >= 3*m//4)):
            print("*", end=" ")
              
        # condition for printing spaces
        else:
            print(" ", end=" ")
    print()
  
# loops for lower part
for i in range(n//2-1, n):
    for j in range(m):
          
        # condition for printing stars
        if (i-j == n//2-1) or (i+j == n-1+m//2):
            print('*', end=" ")
              
        # condition for printing GFG
        elif i == n//2-1:
              
            if j == m//2-1 or j == m//2+1:
                print('G', end=" ")
            elif j == m//2:
                print('F', end=" ")
            else:
                print(' ', end=" ")
                  
        # condition for printing spaces
        else:
            print(' ', end=" ")
              
    print()

Output:

                              
      * *           * *       
    *     *       *     *     
  *         *   *         *   
*             *             * 
*                           * 
*           G F G           * 
  *                       *   
    *                   *     
      *               *       
        *           *         
          *       *           
            *   *             
              *               

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :