# Tutorial: Building a Simple Python CLI Calculator

In this tutorial, I will walk you through building a simple command-line calculator program in Python. This program will allow the user to perform basic mathematical operations like addition, subtraction, multiplication, and division on two numbers.

## Step 1: Setting Up the Environment

To get started, open your favorite text editor or integrated development environment (IDE) where you prefer to write Python code.

## Step 2: Creating the Python File

Create a new file and save it as [`calculator.py`](http://calculator.py) and add the following code:

```python
# calculator.py
# This is a simple calculator program.

def add(num1, num2):
    return num1 + num2

def subtract(num1, num2):
    return num1 - num2

def multiply(num1, num2):
    return num1 * num2

def divide(num1, num2):
    if num2 != 0:
        return num1 / num2
    else:
        return "Error: Division by zero"

print("Simple Calculator")
print("------------------")
```

## Step 3: Understanding the Code

Before we proceed, let's take a moment to understand the code provided above:

* We have defined four functions: `add`, `subtract`, `multiply`, and `divide`, which will perform the corresponding mathematical operations on two numbers.
    
* Each function takes two arguments (`num1` and `num2`) and returns the result of the operation.
    
* The `divide` function has an additional check to prevent division by zero. If the `num2` is 0, it will return an error message.
    

## Step 4: Implementing User Interaction

Let's add code to allow user interaction and perform the desired operations:

```python
while True:
    print("Select operation:")
    print("1. Add")
    print("2. Subtract")
    print("3. Multiply")
    print("4. Divide")
    print("5. Exit")

    choice = input("Enter your choice (1-5): ")
```

In this section, we've created an infinite loop that keeps running until the user chooses to exit (`choice == '5'`).

## Step 5: Processing User Input

Now, let's handle the user's choice and perform the selected operation:

```python
    if choice == '5':
        print("Goodbye!")
        break

    num1 = float(input("Enter the first number: "))
    num2 = float(input("Enter the second number: "))
```

If the user chooses `5`, the program will break out of the loop and terminate. Otherwise, it will prompt the user to enter two numbers on which the operation will be applied.

## Step 6: Executing the Operation

Next, we'll execute the selected operation based on the user's choice:

```python
    if choice == '1':
        result = add(num1, num2)
        print(f"The sum of {num1} and {num2} is {result}")
    elif choice == '2':
        result = subtract(num1, num2)
        print(f"The difference between {num1} and {num2} is {result}")
    elif choice == '3':
        result = multiply(num1, num2)
        print(f"The product of {num1} and {num2} is {result}")
    elif choice == '4':
        result = divide(num1, num2)
        print(f"The division of {num1} by {num2} is {result}")
    else:
        print("Invalid input. Please try again.")
```

Here, we use `if-elif-else` statements to determine the user's choice and perform the corresponding operation. The result is then displayed on the screen.

## Step 7: Handling Invalid Input

Lastly, we will handle the case when the user enters an invalid option:

```python
    else:
        print("Invalid input. Please try again.")
```

If the user enters an option other than 1 to 5, the program will inform them that their input is invalid and prompt them to try again.

## Step 8: Running the Program

Save the [`calculator.py`](http://calculator.py) file and open your command line or terminal. Navigate to the location where you saved the file and run the program with the following command:

```
python calculator.py
```

## Step 9: Using the Simple Calculator

After running the program, you will see the title line "Simple Calculator" displayed on the screen. The program will offer a list of available operations and prompt you to make a choice by entering a number from 1 to 5.

* Enter `5` to exit the program, and it will display "Goodbye!" before terminating.
    
* For the other options (1 to 4), the program will prompt you to enter the two numbers on which the selected operation should be applied.
    
* After performing the operation, the program will return to the menu and prompt you to select another operation.
    

Congratulations! You have successfully created a simple calculator program in Python that allows users to perform basic mathematical operations. Feel free to further enhance the program or add more functionalities to suit your needs. Happy coding!

## **Sample Solution (in case you get stuck):**

```python
# This is a simple calculator program.

# Function to add two numbers
def add(num1, num2):
    return num1 + num2

# function to subtract two numbers
def subtract(num1, num2):
    return num1 - num2

# function to multiply two numbers
def multiply(num1, num2):
    return num1 * num2

# function to divide two numbers, handles division by zero
def divide(num1, num2):
    if num2 != 0:
        return num1 / num2
    else:
        return "Error: division by zero"

# prints the title of the calculator
print("Simple calculator")
print("------------------")

# Start an infinite loop for user interaction
while True:
    # print the available operations
    print("Select operation:")
    print("1. Add")
    print("2. Subtract")
    print("3. Multiply")
    print("4. divide")
    print("5. Exit")

    # prompt the user to enter his choice
    choice = input("Enter a choice (1-5): ")

    # Check if the user wants to exit
    if choice == '5':
        print("Goodbye!")
        break

    # prompt the user to enter the two numbers
    num1 = float(input("Enter the first number: "))
    num2 = float(input("Enter the second number: "))

    # Execute the selected operation based on the user's choice
    if choice == '1':
        result = add(num1, num2)
        print(f "The sum of {num1} and {num2} is {result}")
    elif choice == '2':
        result = subtraction(num1, num2)
        print(f "The difference between {num1} and {num2} is {result}")
    elif choice == '3':
        result = multiplication(num1, num2)
        print(f "The product of {num1} and {num2} is {result}")
    elif choice == '4':
        result = divide(num1, num2)
        print(f "The division of {num1} by {num2} is {result}")
    else:
        print("Invalid input, please try again.")

```
