Как реализовать switch-case в Python. Простой лайфхак


Как реализовать switch-case в Python. Простой лайфхак

Конструкция switch-case используется в различных языках программирования в случае множественного выбора. Одна из альтернатив этой инструкции — условные операторы if-else. И при множественном выборе конструкция таких операторов может иметь значительные размеры.

Более лаконичной альтернативой конструкции switch-case в языке программирования Python могут быть словари. Выглядит это примерно так:

multiple_list = {

    «a»: 1,

    «b»: 2,

    «c»: 3

}

print(multiple_list[«b»])

Данный пример выведет на экран цифру 3. Что соответствует значению ключа «b».

Плюсом такого подхода также можно отметить легкость дополнения выбора. Для этого нужно лишь дописать строчку в словарь.

Недостаток такого подхода — отсутствия блока default. То есть не обрабатывается ситуация, когда нет подходящего значения. И если используется отсутcтвующий ключ, вызывается исключение KeyError.

Мы можем дополнить наш код, добавив обработку исключения с помощью Python инструкции try-except:

multiple_list = {

    «a»: 1,

    «b»: 2,

    «c»: 3

}

try:
    print(multiple_list[«fff»])
except KeyError:

    print(«Error»)

В этом примере используется ключ «fff». А значит, генерируется исключение и на экран будет выведено наше сообщение об ошибке.

Выбор функций

И в дополнение. Словари можно использовать для выбора функции, для последующего вызова. Для этого к ключу нужно добавить круглые скобки:

 

def function_1():
    print («a»)

def function_2():
    print («b»)

def function_3():
    print («c»)

 

function_list = {

    «a»: function_1,

    «b»: function_2,

    «c»: function_3

}

function_list[«b»]()

 

Данный код вызовет функцию function_2(), соответствующую ключу «b».


Поделиться в соц сетях

Подписаться
Уведомить о
0 комментариев
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии

Есть идеи, замечания, предложения? Воспользуйтесь формой Обратная связь или отправьте сообщение по адресу replay@sciencestory.ru
© 2017 Истории науки. Информация на сайте опубликована в ознакомительных целях может иметь ограничение 18+