The match-case statement is a modern feature in Python introduced in Python 3.10. It is used for pattern matching, which allows you to compare a value against multiple patterns in a clean and readable way.
It works similarly to switch-case in other programming languages but is more powerful and flexible.
🧠 What is Match-Case?
The match-case statement is used to:
- Compare a value against multiple cases
- Execute code based on matching patterns
- Replace long
if-elif-elsechains
👉 In simple words:
- match = check value
- case = possible conditions
⚙️ Basic Syntax
match value:
case pattern1:
# code block
case pattern2:
# code block
case _:
# default case👉 The _ symbol acts as a default case (like else).
🧪 Simple Example
day = 3
match day:
case 1:
print("Monday")
case 2:
print("Tuesday")
case 3:
print("Wednesday")
case _:
print("Invalid day")Output:
Wednesday🔍 How Match-Case Works
- Python checks the value after
match - Compares it with each
case - Executes the matching block
- If nothing matches →
_runs
🎯 Match-Case vs if-elif-else
| Feature | match-case | if-elif-else |
|---|---|---|
| Readability | High | Medium |
| Performance | Faster in many cases | Slower in long chains |
| Best for | Multiple fixed values | Complex conditions |
🧪 Example: Simple Calculator
operator = "+"
a = 10
b = 5
match operator:
case "+":
print(a + b)
case "-":
print(a - b)
case "*":
print(a * b)
case "/":
print(a / b)
case _:
print("Invalid operator")🧾 Example: Week Days
day = 6
match day:
case 1:
print("Sunday")
case 2:
print("Monday")
case 3:
print("Tuesday")
case 4:
print("Wednesday")
case 5:
print("Thursday")
case 6:
print("Friday")
case 7:
print("Saturday")
case _:
print("Invalid day")🎮 Example: Game Menu System
choice = input("Enter option (start/stop/pause): ")
match choice:
case "start":
print("Game Started")
case "stop":
print("Game Stopped")
case "pause":
print("Game Paused")
case _:
print("Invalid choice")🔁 Multiple Patterns in One Case
You can match multiple values in one case.
day = 6
match day:
case 1 | 7:
print("Weekend")
case 2 | 3 | 4 | 5 | 6:
print("Weekday")
case _:
print("Invalid")📦 Match with Data Structures
Match-case can also work with lists and tuples.
point = (0, 0)
match point:
case (0, 0):
print("Origin")
case (0, y):
print("Y-axis")
case (x, 0):
print("X-axis")
case _:
print("Random point")⚠️ Common Mistakes
1. Forgetting underscore default case
✔ Always include _ for unmatched values.
2. Using match in older Python versions
❌ Works only in Python 3.10+
3. Incorrect indentation
match x:
case 1:
print("A")✔ Correct:
match x:
case 1:
print("A")🚀 Where Match-Case is Used?
- Menu systems 🧾
- Command-based apps 💻
- Game controls 🎮
- API response handling 🌐
- Data pattern matching 📊
💡 Best Practices
✔ Use match-case for simple value matching
✔ Avoid complex logic inside cases
✔ Always include _ default case
✔ Keep cases organized and readable
🧾 Conclusion
The match-case statement is a powerful addition to Python that simplifies decision-making when comparing multiple values. It makes code cleaner, more readable, and easier to maintain compared to long if-elif-else chains.
🎯 Final Thought
If you are using Python 3.10 or above, mastering match-case will help you write modern and professional-level Python code with better structure and clarity.


0 Comments