Код
#статьи

Условные операторы в Python: от простых «если» до вложенных конструкций

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

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

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

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована