Оператор «switch case» похож на оператор «if… else», но более чистый и быстрый способ, чем «if… else». Он присутствует в таких языках, как C++ или Java.

Используя оператор switch case, можно проверить, является ли переменная одним из множества возможных значений. Переменная будет следовать коду для конкретного значения, которое она принимает. Значение оператора switch case включает в себя:

  1. Простая отладка
  2. Легко читать и понимать
  3. Простота обслуживания
  4. Легко проверить значения для проверки и обработки

В отличие от любого другого языка программирования, который мы использовали ранее, в Python нет операторов switch или case. Но есть способы заменить функциональность оператора switch и сделать программирование проще и быстрее.

Методы реализации Switch case в Python

  • If-elif-else для случая Switch в Python
  • Отображение словаря для случая Switch в Python
  • Использование классов Python
  • Использование функций и лямбда-выражений Python

Мы не будем обсуждать эти методы, так как в Интернете есть множество примеров. Но в последнем python version 3.10 у нас есть новое ключевое слово match, которое можно использовать для реализации регистра переключения, как мы это делали в таких языках, как C++ или Java.

Оператор match принимает выражение и сравнивает его значение с шаблонами, заданными в виде одного или нескольких блоков case.

Просто взгляните на следующий пример.

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the Internet"

В приведенном выше примере ключевое слово match проверяет переменную status и сравнивает ее с вариантами, которые мы указали в операторах case.

Последний блок: «имя переменной» _ действует как шаблон и всегда совпадает.

Мы можем иметь несколько условий в одном шаблоне, используя | («или»):

case 401 | 403 | 404:
    return "Not allowed"

Это похоже на оператор switch в C, Java или JavaScript (и многих других языках), но гораздо мощнее.
Знаете ли вы что-нибудь,
У PYTHON ОФИЦИАЛЬНО ПРЕДСТАВЛЕН КОРПУС SWITCH 🤩.
Теперь это легко реализовать на питоне. Поделитесь этим со своими друзьями по C++, Java. Сообщите им, что у нас также есть чехол для выключателя.😎

Ссылки:
https://flexiple.com/python/python-switch-case
https://peps.python.org/pep-0636/
https://www.geeksforgeeks.org/switch-case-in-python-replacement/