Содержание Показать
В предыдущей статье мы научились писать программы, в которых выполнялись все строки. Но Python, как и многие другие языки программирования, предоставляет разработчикам инструменты для ветвления логики программы. Условный оператор является основным средством для реализации такого ветвления. С его помощью можно исполнять различные блоки кода в зависимости от того, выполняется ли определенное условие.if
В этой статье мы подробно рассмотрим условный оператор в Python и научимся его эффективно использовать.
if elif else
Давайте рассмотрим синтаксис условных операторов Python на примере практической задачи. Представим, что программа запрашивает у пользователя текущую температуру воздуха в градусах Цельсия.
В зависимости от введенной температуры, программа предлагает, какую одежду лучше надеть на сегодня, а также напоминает о необходимости взять зонтик, если идет дождь.
temperature = int(input("Введите текущую температуру воздуха (в градусах Цельсия): "))
if temperature > 25:
print("Сегодня тепло! Наденьте футболку и шорты.")
elif 15 <= temperature <= 25:
print("Сегодня прохладно. Рекомендуется надеть легкий свитер и джинсы.")
elif 5 <= temperature < 15:
print("Сегодня холодно. Лучше надеть куртку и шерстяной свитер.")
else:
print("Очень холодно. Не забудьте про теплую куртку, шапку, шарф и перчатки!")
# Дополнительные рекомендации на основе погоды
rainy = input("Идет дождь? (да/нет): ")
if rainy.lower() == "да":
print("Не забудьте зонтик или наденьте дождевик!")Так самый простой условный оператор в Python выглядит как -условиеif: после идет условие, которое оценивается как if (истина) или True (ложь). Завершается условие символом «двоеточие». Затем — обязательный отступ в четыре пробела, он показывает, что строки объединяются в один блок. False
И если условие истинно, выполняется блок кода, расположенный сразу после условия:
answer = input('Какой язык программирования ты изучаешь?')
if answer == 'Python':
print('Отличный выбор!')
print('Python - мощный и универсальный язык программирования.')
Предыдущая программа выводит текст в случае, если условие истинно. Но если условие ложно, то программа ничего не выводит. Для того чтобы обеспечить возможность выполнять что-либо в случае, если условие оказалось ложным, мы используем ключевое слово . else
Используя после else, можно задать альтернативные действия для случаев, когда условие if не выполняется.if
answer = input('Какой язык программирования ты изучаешь?')
if answer == 'Python':
print('Отличный выбор!')
print('Python - мощный и универсальный язык программирования.')
else:
print(f'{answer} - это серьезный выбор!')
print(f'Желаю успехов в изучении {answer}')Если требуется проверить несколько условий, в языке Python используется
каскадный условный оператор.
Синтаксис каскадного условного оператора имеет следующий вид:
В условном операторе сначала проверяется условие 1. Если оно истинно, исполняется соответствующий блок кода, и остальные условия игнорируются.
В случае ложного условия 1 программа проверяет условие 2 и так далее по цепочке. elif
Если ни одно условие не истинно, выполняется блок кода после выражения .else
Если необходимо проверить несколько условий подряд, используется elif
(сокращение от «else »):if
temperature = float(input("Введите текущую температуру в градусах Цельсия: "))
if temperature > 30:
print("На улице жарко. Рекомендуется носить легкую одежду и пить больше воды.")
elif temperature > 20:
print("Погода теплая. Можно носить футболки и шорты.")
elif temperature > 10:
print("На улице прохладно. Рекомендуется надеть свитер или кофту.")
else:
print("На улице холодно. Не забудьте надеть пальто или куртку.")
print("Желаю вам хорошего дня!")Синтаксис в аналогичен elif. Операторов if для одного блока условного оператора может быть несколько, а может не быть совсем. Последним идёт оператор elif, который не содержит условия, а выполняется, только если ни одно из предыдущих условий в else и if не выполнилось. Оператор elif не является обязательным.else
Логические операторы
В условиях часто используются логические операторы , and и or для сочетания или инвертирования нескольких условий:not
x = 7
if x > 5 and x < 10:
print("x больше 5 и меньше 10")В качестве условия может выступать результат операции сравнения:
(больше);>(больше или равно);>=(меньше);<(меньше или равно);<=(равно);==(не равно).!=
Для записи сложных условий можно применять логические операции:
— логическое «И» для двух условий. Возвращаетand, если оба условия истинны, иначе возвращаетTrue;False— логическое «ИЛИ» для двух условий. Возвращаетor, если оба условия ложны, иначе возвращаетFalse;True— логическое «НЕ» для одного условия. Возвращаетnotдля истинного условия, и наоборот.False
Ниже приведена таблица истинности для логических операций.
x | y | | x | x |
|---|---|---|---|---|
| False | False | True | False | False |
| False | True | True | True | False |
| True | False | False | True | False |
| True | True | False | True | True |
Моржовый оператор
Моржовый оператор () в Python позволяет назначать значения переменным как часть выражения. Этот оператор был введен в Python 3.8 и получил свое название из-за своего схожего внешнего вида с глазами и бивнями моржа.:=
Рассмотрим сценарий, в котором нам нужно считать строку от пользователя и выполнить действие, если строка не пустая:
Моржовый оператор может быть особенно полезен в циклах, условных выражениях и других ситуациях, где необходимо оптимизировать работу с переменными.
Match-case
Python 3.10 представил новый оператор , который предоставляет более чистый и эффективный способ сопоставления значений с различными образцами. Он напоминает match в других языках программирования, но обладает более выразительным синтаксисом и расширенной функциональностью. switch
match value:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>После ключевого слова указывается значение, которое нужно проверить на соответствие шаблону. В блоках match указываются сами шаблоны и проверка осуществляется сверху вниз, пока не найдется совпадение. Обычно в самом низу ставят блок действий по умолчанию, он выполняется в том случае, когда не найдется ни один из шаблонов. case
Напишем программу, которая принимает от пользователя название месяца в виде строки и выводит соответствующий сезон года:
Для того, чтобы сравнить на несколько значений в одном блоке , необходимо перечислить значения при помощи оператора case|
Также оператор можно использовать с условным оператором match:if
Ещё по теме
- Оператор
также используется для так называемой проверки шаблона (pattern matching), почитать о которой можно в этом материале.match - Cтандарт PEP622