### 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 + bdef subtract(a, b):    return a - bdef multiply(a, b):    return a * bdef divide(a, b):    return a / bdef modulus(a, b):    return a % bdef exponent(a, b):    return a ** bdef floor_divide(a, b):    return a // boperators = {    '+': 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 == bdef not_equal(a, b):    return a != bdef greater_than(a, b):    return a > bdef less_than(a, b):    return a < bdef greater_than_or_equal_to(a, b):    return a >= bdef less_than_or_equal_to(a, b):    return a <= boperators = {    '==': 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.