While there is no built-in switch-case statement in Python programming like in Java, you can achieve the same in certain ways.
Example 1: Using dictionary
def switch_case(case):
switch = {
1: "Case 1",
2: "Case 2",
3: "Case 3"
}
return switch.get(case, "Invalid case option!")
# Example usage:
print(switch_case(1))
print(switch_case(2))
print(switch_case(3))
# Invalid
print(switch_case(4))
You can also call a function based on the case match.
Example 2: With Functionsdef switch_case(case):
switch = {
1: func1,
2: func2,
}
func = switch.get(case, lambda: print("Invalid case option!"))
return func()
def func1():
print("func 1!")
def func2():
print("func 2!")
# Example usage:
switch_case(1)
switch_case(2)
switch_case(3)
Now let's make use of the default case when there is no match.
Example 3: Default case
def switch_case(case):
switch = {
1: func1
}
func = switch.get(case, default_case)
return func()
def func1():
print("func 1!")
def default_case():
print("Default case!")
# Example usage:
switch_case(1)
switch_case(2)
If you are using Python 3.10 or above you can make use of the pattern matching to implement switch-case.
Example 4: Pattern Matching (Python 3.10)def calculator(num1, num2, operator):
match operator:
case '+':
return num1 + num2
case '-':
return num1 - num2
case '*':
return num1 * num2
case '/':
if num2 != 0:
return num1 / num2
else:
return "Error: Cannot divide by zero"
case _:
return "Error: Invalid operator!"
print("---- Switch Case Based Calculator ----")
num1 = float(input("Enter 1st number: "))
num2 = float(input("Enter 2nd number: "))
operator = input("Enter the operator (+, -, *, /): ")
result = calculator(num1, num2, operator)
print("Result:", result)
---- Switch Case Based Calculator ----
Enter 1st number: 10
Enter 2nd number: 20
Enter the operator (+, -, *, /): *
Result: 200.0
Provide Feedback For This Article
We take your feedback seriously and use it to improve our content. Thank you for helping us serve you better!
😊 Thanks for your time, your feedback has been registered!
Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!