Условные операторы в Python: от простых «если» до вложенных конструкций
2026-02-21 22:19 Diff

#статьи

  • 10 июн 2024
  • 0

Крутим логические вентили и учим программу принимать решения.

Иллюстрация: Google DeepMind / Unsplash / Colowgee для Skillbox Media

Пишет про digital и машинное обучение для корпоративных блогов. Топ-автор в категории «Искусственный интеллект» на Medium. Kaggle-эксперт.

Компьютерные программы тоже принимают решения на основе условий. В Python для этого есть условные операторы if, elif и else. Рассказываем, как они работают, для чего нужны и можно ли обойтись без них.

Содержание

ЭКСПЕРТ

Эксперт Skillbox по компьютерным сетям и кибербезопасности. Автор телеграм-канала «Кудрявый микрофон».

Условные операторы в Python используют для разработки программ, которые учитывают разные условия и на их основе выполняют определённые действия. Чаще всего их используют для следующих задач:

  • Принятие решений. Позволяют программе выбирать между различными путями выполнения. Например, отправить пользователю письмо на почту или сообщение в мессенджере.
  • Контроль потока выполнения. Условные операторы управляют тем, какие части кода будут выполнены, а какие проигнорированы.
  • Оптимизация кода. Позволяют избегать выполнения ненужных операций, что улучшает производительность. Действия в программе выполняются последовательно, но иногда некоторые операции надо пропустить.
  • Обработка ошибок. Условные операторы помогают обнаруживать и реагировать на ошибки или нестандартные ситуации. С помощью условных операторов можно описать, как программе реагировать на возникающие в коде ошибки.

Конструкцию 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 — если это условие ложно. После 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) — проверяет следующие условия, если предыдущее условие ложно.
  • 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 ― если нет.
  • Можно использовать вложенные условные операторы, чтобы создавать более сложные логические конструкции.
  • С помощью условий можно избежать выполнения ненужных операций.

Python для всех

Вы освоите Python на практике и создадите проекты для портфолио — телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер — руководитель отдела разработки в «Сбере».

Пройти бесплатно

Бесплатный курс по разработке на Python ➞
Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер — руководитель отдела разработки в «Сбере». Пройти курс