Introduction: How to Draw an Equilateral Triangle in Python

In this program, we will write a simple program to draw an equilateral triangle using only the ASCII character * and some array logic. Let's get started.

Supplies

You would need the latest Python compiler and a Python IDE installed. If you do not have them, I highly recommend installing Thonny. Thonny is a simple IDE that installs the latest Python version on your system. Thonny also runs in on multiple operating systems.

Step 1: Getting the User Input

We get the user input using Python's input() command in this step. We check if the input is greater than 1 otherwise we exit the program. Here is the code for the above logic:

side = int(input("Enter the side of the triangle: "))
curr_num = 0
if side<=1:
    exit()

Now we will be using Array logic to print our equilateral triangle. I'll initially post the code for the array logic and then explain more in-depth.

Step 2: Adding Array Logic (CODE)

for i in range(side):
    for j in range(side):
        if (i== side - j) or ((i == side - 1) and (j%2 != 0)):
            print("*", end="")
        else:
            print(" ", end="")
    for k in range(side):
        if (i == k) or ((i == side - 1) and (k%2 == 0)):
            print("*", end="")
        else:
            print(" ", end="")
    print("")

Step 3: Array Logic (Explanation)

for i in range(side):
    for j in range(side):
        if (i== side - j) or ((i == side - 1) and (j%2 != 0)):
            print("*", end="")
        else:
            print(" ", end="")
    for k in range(side):
        if (i == k) or ((i == side - 1) and (k%2 == 0) and (k != side -2)):
            print("*", end="")
        else:
            print(" ", end="")
    print("")

In the above code, we run two arrays within a main array. The first sub-array draws the left part of the triangle, while the second sub-array draws the right part of the array. The last part of the code i.e. print("") also prints a newline along with the null character and takes care of printing a newline every iteration.

The loop divides the parts of the side of a triangle as odd and even using the Modulo (%) operator. You'll understand the code better as you try this code in your own IDE.

Step 4: Complete Code for the Project

I've attached the complete code of the project below. I've also added the code in the body below.

side = int(input("Enter the side of the triangle: "))
curr_num = 0
if side<=1:
    exit()
for i in range(side):
    for j in range(side):
        if (i== side - j) or ((i == side - 1) and (j%2 != 0)):
            print("*", end="")
        else:
            print(" ", end="")
    for k in range(side):
        if (i == k) or ((i == side - 1) and (k%2 == 0) and (k != side -2)):
            print("*", end="")
        else:
            print(" ", end="")
    print("")

    

Please comment below if you have any doubts. Happy Coding!!