# Python – Print Heart Pattern

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)

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next