Операторы выбора являются популярной функцией во многих языках программирования, позволяя разработчикам чисто и эффективно обрабатывать множественные условные случаи. Однако в 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.