Условные операторы в Python: от простых «если» до вложенных конструкций
Крутим логические вентили и учим программу принимать решения.


Иллюстрация: Google DeepMind / Unsplash / Colowgee для Skillbox Media
Компьютерные программы тоже принимают решения на основе условий. В Python для этого есть условные операторы if, elif и else. Рассказываем, как они работают, для чего нужны и можно ли обойтись без них.
Содержание
- Что делают условные операторы в Python
- Оператор if
- Оператор if-else
- Оператор if-elif-else
- Логические операторы в условиях

ЭКСПЕРТ
Валерий Линьков
Эксперт Skillbox по компьютерным сетям и кибербезопасности. Автор телеграм-канала «Кудрявый микрофон».
Что делают условные операторы в Python
Условные операторы в Python используют для разработки программ, которые учитывают разные условия и на их основе выполняют определённые действия. Чаще всего их используют для следующих задач:
- Принятие решений. Позволяют программе выбирать между различными путями выполнения. Например, отправить пользователю письмо на почту или сообщение в мессенджере.
- Контроль потока выполнения. Условные операторы управляют тем, какие части кода будут выполнены, а какие проигнорированы.
- Оптимизация кода. Позволяют избегать выполнения ненужных операций, что улучшает производительность. Действия в программе выполняются последовательно, но иногда некоторые операции надо пропустить.
- Обработка ошибок. Условные операторы помогают обнаруживать и реагировать на ошибки или нестандартные ситуации. С помощью условных операторов можно описать, как программе реагировать на возникающие в коде ошибки.

Читайте также:
Оператор if
Конструкцию if используют, чтобы добавить одно условие в код. Содержимое такого блока будет выполняться только в том случае, если условие истинно и принимает значение True. В остальных случаях программа будет пропускать содержимое блока.
Синтаксис
Для создания условия используют оператор if. Затем следует само условие, а после идёт двоеточие и с новой строки с отступом начинается код. Если не соблюсти правила форматирования, то программа не будет работать:
if условие:
блок кода, который выполняется, если условие = True
следующий блок кода
В примере ниже если переменная x больше пяти, Python выведет в консоль сообщение x больше 5. В остальных случаях код внутри блока if не будет выполняться и пользователь не увидит сообщение:
x = 10
if x > 5:
print('x больше 5')
Примеры задач
Представим, что вы решили написать программу, которая посчитает, можете ли вы позволить себе булочку за 35 рублей в кафе. Для начала создадим переменную bun и запишем в неё стоимость булочки. Затем с помощью функции input узнаем, сколько денег есть у пользователя. Теперь в блоке if проверяем, хватает ли суммы на покупку булочки, если да, то сообщаем об этом:
bun = 35
# Узнаем, сколько есть денег
money = int(input("Сколько денег с собой?"))
if money >= 35:
# Если денег больше 35 рублей, то вы можете купить выпечку
print("Вы можете купить булку")
# Примеры вывода:
Сколько денег с собой? 40
Вы можете купить булку
Сколько денег с собой? 20 # Если денег не хватает, программа ничего не выдаёт

Читайте также:
Оператор if-else
Конструкция if-else позволяет выполнять два блока кода: для истинного и ложного условий. Это позволяет управлять поведением программы в зависимости от входных данных и состояний.
if описывает, что делать программе, если условие истинно, а else — если это условие ложно. После else нельзя указать другое условие: просто ставится двоеточие. Следующий блок кода начинается с отступа, как и в случае с if.
Синтаксис
В общем виде конструкция if-else выглядит следующим образом:
if условие:
Блок_кода_1
else:
Блок_кода_2
Доработаем наш пример и добавим блок else. Он будет выводить сообщение, если переменная x меньше пяти:
x = 10
if x > 5:
# Если x больше 5, выводим, что больше
print('x больше 5')
else:
# Если меньше, выводим, что меньше
print('x меньше 5')
Мы предусмотрели, что делать программе в обоих случаях, а пользователь в любом случае увидит сообщение в консоли.
Для проверки условий внутри блоков if можно использовать вложенные условные операторы:
x = 15
if x > 10:
print("x больше 10")
if x > 20:
print("x больше 20")
else:
print("x больше 10, но меньше или равно 20")
else:
print("x меньше или равно 10")
Примеры задач
Вернёмся к задаче с булочкой. Допустим, если у нас больше 50 рублей, то мы можем купить пирожок с картошкой. А если меньше, то только простую булочку:
bun = 35
pie = 50
money = int(input("Сколько денег с собой?"))
if money >= 50:
# Блок кода 1
print("Вы можете купить пирожок с картошкой")
else:
# Блок кода 2
print("Вы не можете купить пирожок с картошкой. Купите булку.")
Когда условие после if оценивается как истинное, выполняется блок кода 1. В противном случае выполняется блок кода 2.
Тернарный оператор
Это страшное словосочетание обозначает лишь, что условие if-else можно записать в одной строке. Тернарные операторы используют для сокращения кода в проекте и улучшения читаемости:
x = 10
result = "x больше 5" if x > 5 else "x не больше 5"
print(result)
Оператор if-elif-else
Конструкция if-elif-else используется для проверки нескольких условий и выполнения только подходящего кода:
- if — проверяет первое условие.
- elif (сокращение от else if) — проверяет следующие условия, если предыдущее условие ложно.
- else — выполняет блок кода, если все предыдущие условия ложны.
Синтаксис
В общем виде синтаксис конструкции if-elif-else выглядит следующим образом:
if условие1:
блок_кода1
elif условие2:
блок_кода2
elif условие3:
блок_кода3
else:
блок_кодаN
Рассмотрим пример, в котором переменной x присваивается значение и с помощью оператора if-elif-else проверяется диапазон этого значения.
x = 7
if x > 10:
print("x больше 10")
elif x > 5:
print("x больше 5, но меньше или равно 10")
elif x > 0:
print("x больше 0, но меньше или равно 5")
else:
print("x меньше или равно 0")
В данном примере результат будет: x больше 5, но меньше или равно 10, так как переменная x равна 7 и попадает в заданный диапазон.
Примеры задач
Рассмотрим пример, в котором проверяются различные состояния. Представим, что в пекарне в качестве бонуса к заказу детям дают бесплатный чай, а пенсионерам — морс. Нужно написать программу, которая на основе возраста определит, какой подарок может получить клиент.
age = int(input("Ваш возраст:"))
if age < 1:
print("Введите корректный возраст.")
elif age < 18:
print("Вы несовершеннолетний. Вам полагается чай.")
elif age > 65:
print("Вы пенсионер. Вам полагается морс.")
else:
print("Спасибо за заказ!")
# Примеры вывода:
Ваш возраст: 17
Вы несовершеннолетний. Вам полагается чай.
Ваш возраст: 67
Вы пенсионер. Вам полагается морс.
Логические операторы в условиях
Для создания сложных условий можно использовать логические операторы: and, or и not.

Читайте также:
Логические операторы в программировании используют для выполнения операций с булевыми значениями (True или False).
- and (логическое И). Возвращает True, если оба условия истинны.
True and True # Возвращает True
True and False # Возвращает False
False and True # Возвращает False
False and False # Возвращает False
- or (логическое ИЛИ). Возвращает True, если хотя бы одно из условий истинно.
True or True # Возвращает True
True or False # Возвращает True
False or True # Возвращает True
False or False # Возвращает False
- not (логическое НЕ). Инвертирует значение условия (если условие истинно, возвращает False и наоборот).
not True # Возвращает False
not False # Возвращает True
Рассмотрим на примере, как использовать логические операторы в условиях. В задаче ниже, чтобы код выполнялся, должны быть истинными сразу два условия:
x = 7
y = 8
if x > 5 and y > 5:
print("x и y больше 5")
if x > 5 or y > 10:
print("x больше 5 или y больше 10")
if not x < 5:
print("x не меньше 5")

Читайте также:
Что в итоге
- Условные операторы позволяют программе выбирать между разными вариантами событий. Так она может адаптироваться под разные условия задачи.
- Условия управляют тем, какие части кода будут выполнены, а какие пропущены, обеспечивая более точное и эффективное выполнение программ.
- if позволяет добавить одно условие. Если оно истинно, то блок кода будет выполнен.
- if-else позволяет добавить два условия. Блок if выполняется, если условие истинно, а блок else — если ложно.
- if-elif-else позволяет добавить сколько угодно условий. Тогда блоки if и elif выполняются, если условия истинны, а else ― если нет.
- Можно использовать вложенные условные операторы, чтобы создавать более сложные логические конструкции.
- С помощью условий можно избежать выполнения ненужных операций.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!