Как написать оператор выбора case на python?

Пользователь

от ludie , в категории: Python , 2 года назад

Как написать оператор выбора case на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от richard , 2 года назад

@ludie 

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

1
2
3
4
5
6
def switch_case(case, x):
    return {
        'case1': func1,
        'case2': func2,
        'case3': func3
    }.get(case, default_func)(x)


Здесь switch_case принимает два аргумента: case - строку, соответствующую случаю, и x - значение, для которого нужно выполнить операцию.


Внутри switch_case создается словарь, содержащий соответствующие функции для каждого случая. Затем, используя метод .get(), выбирается нужная функция и выполняется с аргументом x. Если соответствующего ключа case в словаре нет, вызывается функция default_func.


Замените 'case1': func1, 'case2': func2, 'case3': func3 на свои значения, где func1, func2, func3 - функции, которые нужно выполнить для каждого случая, а default_func - функция по умолчанию для случаев, которые не определены в словаре.

Пользователь

от ella , 8 месяцев назад

@ludie 

Вот пример с использованием функций для каждого случая:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def func1(x):
    return x + 1

def func2(x):
    return x * 2

def func3(x):
    return x ** 2

def default_func(x):
    return "Invalid case"

def switch_case(case, x):
    return {
        'case1': func1,
        'case2': func2,
        'case3': func3
    }.get(case, default_func)(x)

# Пример использования
result1 = switch_case('case1', 3)  # Вернет 4
result2 = switch_case('case2', 5)  # Вернет 10
result3 = switch_case('case3', 4)  # Вернет 16
result4 = switch_case('case4', 3)  # Вернет "Invalid case"


Здесь func1, func2 и func3 представляют функции, которые будут выполнены для каждого случая. default_func - это функция по умолчанию, которая будет вызвана, если case не соответствует ни одному из значений в словаре. В примере показано, как использовать switch_case для выполнения различных случаев.