Write a program for all operators without using switch statement in python

Python, like many other programming languages, provides a range of operators for performing various operations on data types. These operators are typically used in conjunction with control statements like if and switch to execute different blocks of code based on the operator's value. However, Python doesn't have a `switch` statement, so how do you write a program for all operators without using a `switch` statement? In this blog post, we'll explore how to do just that.

Python Operators

Before we dive into writing the program, let's take a quick look at some of the operators available in Python. These include arithmetic operators, comparison operators, logical operators, identity operators, and membership operators.

Arithmetic Operators

Operator Description Example Result
+ Addition 2 + 3 5
- Subtraction 5 - 2 3
* Multiplication 3 * 4 12
/ Division (float) 7 / 3 2.3333
// Division (floor) 7 // 3 2
% Modulus 7 % 3 1
** Exponentiation 2 ** 3 8

Comparison Operators

Operator Description Example Result
== Equal to 2 == 2 True
!= Not equal to 3 != 2 True
> Greater than 5 > 3 True
< Less than 4 < 6 True
>= Greater than or equal to 7 >= 7 True
<= Less than or equal to 3 <= 4 True

Logical Operators

Operator Description Example Result
and Logical AND True and False False
or Logical OR True or False True
not Logical NOT not True False

Identity Operators

Operator Description Example Result
is True if the operands are identical objects x is y False
is not True if the operands are not identical objects x is not y True

Membership Operators

Operator Description Example Result
in True if a value is found in the sequence x in y True
not in True if a value is not found in the sequence x not in y False

Example: Program for all Operators

Now that we've seen the different types of operators available in Python, let's take a look at how to write a program that uses all of them without using a switch statement. The key to achieving this is to use a dictionary to map the operator symbol to the corresponding function.

Here's an example program that uses a dictionary to perform arithmetic operations based on user input:

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    return a / b

def modulus(a, b):
    return a % b

def exponent(a, b):
    return a ** b

def floor_divide(a, b):
    return a // b

operators = {
    '+': add,
    '-': subtract,
    '*': multiply,
    '/': divide,
    '%': modulus,
    '**': exponent,
    '//': floor_divide
}

operator = input("Enter an operator (+, -, *, /, %, **, //): ")
if operator in operators:
    a = int(input("Enter the first operand: "))
    b = int(input("Enter the second operand: "))
    result = operators[operator](a, b)
    print("Result:", result)
else:
    print("Invalid operator")

Output

Enter an operator (+, -, *, /, %, **, //): +
Enter the first operand: 23
Enter the second operand: 12
Result: 35 

In the above program, we first define functions for each arithmetic operator, and then create a dictionary that maps the operator symbol to the corresponding function. The user is prompted to enter an operator symbol, and if it matches one in the dictionary, they are prompted to enter two operands. The program then calls the function associated with the operator symbol and passes the two operands as arguments.

Example

This same approach can be used for comparison, logical, identity, and membership operators. Here's an example program that uses a dictionary to perform comparison operations based on user input:

def equal(a, b):
    return a == b

def not_equal(a, b):
    return a != b

def greater_than(a, b):
    return a > b

def less_than(a, b):
    return a < b

def greater_than_or_equal_to(a, b):
    return a >= b

def less_than_or_equal_to(a, b):
    return a <= b

operators = {
    '==': equal,
    '!=': not_equal,
    '>': greater_than,
    '<': less_than,
    '>=': greater_than_or_equal_to,
    '<=': less_than_or_equal_to
}

operator = input("Enter an operator (==, !=, >, <, >=, <=): ")
if operator in operators:
    a = int(input("Enter the first operand: "))
    b = int(input("Enter the second operand: "))
    result = operators[operator](a, b)
    print("Result:", result)
else:
    print("Invalid operator")

Output

Enter an operator (==, !=, >, <, >=, <=): !=
Enter the first operand: 23
Enter the second operand: 12
Result: True

In this program, we define functions for each comparison operator, create a dictionary that maps the operator symbol to the corresponding function, and prompt the user to enter an operator symbol and two operands. The program then calls the function associated with the operator symbol and passes the two operands as arguments.

Conclusion

In conclusion, although Python doesn't have a switch statement, it's still possible to write a program that uses all the available operators using dictionaries. By defining functions for each operator and mapping them to the corresponding operator symbol, we can easily perform various operations based on user input. This approach can be used for all types of operators, including arithmetic, comparison, logical, identity, and membership operators.

Comments