﻿ Python Simple Calculator Project with Solutions

# Python Simple Calculator Project with Solutions and Explanations

Calculator:

Input: User provides two numbers and selects an operation (addition, subtraction, multiplication, division).

Output: The result of the chosen operation.

Input and output values:

Input values:

Enter the first number: 5

Enter operation (+, -, *, /): +

Enter the second number: 3

Output value: Result: 8

Here are two different solutions for a basic calculator program in Python. Both solutions will accept user input for two numbers and an arithmetic operation (addition, subtraction, multiplication, or division) and then output the result.

Solution 1: Basic Approach using conditional statements

Code:

``````# Solution 1: Basic Approach Using Conditional Statements

# Get the first number from the user and convert it to a float
first_number = float(input("Enter the first number: "))

# Get the operation from the user (+, -, *, /)
operation = input("Enter operation (+, -, *, /): ")

# Get the second number from the user and convert it to a float
second_number = float(input("Enter the second number: "))

# Initialize a variable to store the result
result = None

# Perform the chosen operation using conditional statements
if operation == '+':
result = first_number + second_number
elif operation == '-':
# Subtraction
result = first_number - second_number
elif operation == '*':
# Multiplication
result = first_number * second_number
elif operation == '/':
# Division; check if the second number is not zero to avoid division by zero
if second_number != 0:
result = first_number / second_number
else:
# Handle division by zero error
print("Error: Division by zero is not allowed.")
else:
# Handle invalid operations
print("Error: Invalid operation.")

# Print the result if a valid operation was performed
if result is not None:
print(f"Result: {result}")
``````

Output:

```Enter the first number: 12
Enter operation (+, -, *, /): +
Enter the second number: 33
Result: 45.0
```
```Enter the first number: 5
Enter operation (+, -, *, /): *
Enter the second number: 7
Result: 35.0
```
```Enter the first number: 120
Enter operation (+, -, *, /): /
Enter the second number: 13
Result: 9.23076923076923
```
```Enter the first number: 34
Enter operation (+, -, *, /): -
Enter the second number: 8
Result: 26.0
```

Explanation:

• Uses if-elif-else statements to check the user's chosen operation and perform the corresponding arithmetic calculation.
• Takes user input for two numbers and the desired operation, converts the numbers to floats, and checks for errors such as division by zero or an invalid operation.
• This solution is straightforward but can become lengthy if more operations are added.

Solution 2: Using a Dictionary and Functions for Cleaner Code

Code:

``````# Solution 2: Using a Dictionary and Functions for Cleaner Code

# Define functions for each arithmetic operation
return x + y

def subtract(x, y):
"""Function to perform subtraction"""
return x - y

def multiply(x, y):
"""Function to perform multiplication"""
return x * y

def divide(x, y):
"""Function to perform division, checks for division by zero"""
if y == 0:
return "Error: Division by zero is not allowed."
return x / y

# Map operations to their corresponding functions using a dictionary
operations = {
'-': subtract,
'*': multiply,
'/': divide
}

# Get user input for the first number, operation, and second number
first_number = float(input("Enter the first number: "))
operation = input("Enter operation (+, -, *, /): ")
second_number = float(input("Enter the second number: "))

# Check if the chosen operation is valid
if operation in operations:
# Retrieve the function corresponding to the chosen operation
result = operations[operation](first_number, second_number)
print(f"Result: {result}")
else:
# Handle invalid operations
print("Error: Invalid operation.")
``````

Output:

```Enter the first number: 12
Enter operation (+, -, *, /): +
Enter the second number: 33
Result: 45.0
```
```Enter the first number: 5
Enter operation (+, -, *, /): *
Enter the second number: 7
Result: 35.0
```
```Enter the first number: 120
Enter operation (+, -, *, /): /
Enter the second number: 13
Result: 9.23076923076923
```
```Enter the first number: 34
Enter operation (+, -, *, /): -
Enter the second number: 8
Result: 26.0
```

Explanation:

• Defines separate functions for each arithmetic operation (add, subtract, multiply, divide).
• Uses a dictionary to map user inputs (+, -, *, /) to the corresponding functions.
• When the user inputs an operation, the corresponding function is called from the dictionary, making the code more modular, organized, and easier to extend.
• Handles errors such as division by zero and invalid operations in a clean, centralized way.

Note: Both solutions accomplish the task, but Solution 2 is more modular, making it easier to maintain and extend for future improvements or additional operations.

﻿