Python Switch-Case Statement equivalent like Java Example


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))  

Case 1
Case 2
Case 3
Invalid case option!


You can also call a function based on the case match.

Example 2: With Functions
def 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

Facing issues? Have Questions? Post them here! I am happy to answer!

Author Info:

Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org

Copyright ยฉ Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap