Open In App

Python - Print Heart Pattern

Last Updated : 05 Aug, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

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           * 
  *                       *   
    *                   *     
      *               *       
        *           *         
          *       *           
            *   *             
              *               

Time complexity: O(n2) for given input n

Auxiliary Space: O(1)


Next Article
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy