Skip to main content

Операторы сопоставления

Match Statements in Python

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

Оператор Match

Оператор match был представлен в Python 3.10 для предоставления краткой и читаемой формы выражения условной логики. Это позволяет сравнивать значение с набором шаблонов и выполнять соответствующий код в зависимости от совпадения.

Чтобы использовать match в Python, вы можете создать оператор case для каждого шаблона для сопоставления. Вот пример кода, демонстрирующего оператор сопоставления с образцом в Python:

def describe_number(num):
    match num:
        case 0:
            return "Zero"
        case 1:
            return "Single"
        case _:
            return "Multiple"

В этом примере функция describe_number принимает параметр num и возвращает строку на основе значения num. Если num равно 0, она возвращает Zero. Если num равно 1, она возвращает Single. В противном случае она возвращает Multiple, используя шаблон соответствия с подстановочным знаком _.

Вот ещё один пример оператора выбора в Python:

def calculate_discount(total_amount):
    match total_amount:
        case amount if amount < 1000:
            return amount * 0.05
        case amount if amount >= 1000 and amount < 5000:
            return amount * 0.10
        case amount if amount >= 5000:
            return amount * 0.15

В этом примере функция calculate_discount принимает параметр total_amount и возвращает соответствующую скидку в зависимости от значения total_amount. Оператор match содержит три инструкции case с конкретными условиями, каждая из которых возвращает применимый процент скидки.

В заключение, оператор match является мощным дополнением к языку Python, которое упрощает условные выражения. Это может улучшить читаемость и помочь вам писать более краткий код.

Оператор Switch

К сожалению, в Python нет встроенного оператора switch case. Тем не менее, существует несколько методов имитации его функциональности через другие конструкции, такие как условные операторы if-elif-else или словари.

def switch_case(argument):
    if argument == 0:
        return "Zero"
    elif argument == 1:
        return "One"
    elif argument == 2:
        return "Two"
    else:
        return "Invalid argument"

print(switch_case(2)) # Output: Two
def switch_case(argument):
    return {
        0: "Zero",
        1: "One",
        2: "Two"
    }.get(argument, "Invalid argument")

print(switch_case(2)) # Output: Two

Хотя и не так кратко, как оператор выбора switch case, эти альтернативы могут обеспечить аналогичную логику и читаемость в вашем коде на Python.

Пишите вместе с нами!

Вы можете внести свой вклад в статьи о Python на GitHub: создайте Fork, внесите правки и отправьте нам Pull request.

Profile picture for user AliaksandrSumich
Python engineer, expert in third-party web services integration.
Обновлено: 05/03/2024 - 21:53
Profile picture for user angarsky
Evgeniy Melnikovрецензент
Проверено и опубликовано