Условные конструкции `if/elif/else` - Python с нуля до Junior: Путь к первой работе в IT - Qpel.AI

Условные конструкции `if/elif/else`

В реальной жизни мы постоянно принимаем решения: "Если на улице дождь, возьму зонт", "Если голоден, поем". В программировании то же самое! Чтобы ваш код мог "думать" и реагировать на разные ситуации, нужны условные конструкции. Они позволяют программе выполнять действия только при соблюдении заданных условий.

Зачем нужны условные конструкции?

Представьте, что вы пишете программу для онлайн-магазина. Вам нужно:

  • Показать кнопку "Купить", только если товар есть в наличии.
  • Применить скидку, если сумма заказа превышает 5000 рублей.
  • Вывести сообщение об ошибке, если пользователь ввёл неверные данные.

Все эти сценарии реализуются с помощью условных конструкций. Они делают ваш код гибким и адаптивным.

if: Если условие истинно

Самая базовая условная конструкция — это оператор if (с англ. "если"). Он проверяет условие. Если оно истинно (True), выполняется блок кода под ним.

Синтаксис if:

if условие:
    # Блок кода, который выполняется, если условие истинно
    # Обратите внимание на отступ!

Важно: В Python блоки кода определяются отступами (обычно 4 пробела или 1 табуляция). Это ключевое отличие от многих других языков, где используются фигурные скобки. Правильные отступы критически важны!

Пример:

age = 18

if age >= 18:
    print("Вы совершеннолетний.")
    print("Можете получить водительские права.")

print("Программа завершена.")

Что здесь происходит?

  1. Мы задали переменную age со значением 18.
  2. Условие age >= 18 (18 больше или равно 18) истинно.
  3. Поэтому выполняются обе строки внутри блока if.
  4. Строка "Программа завершена." выполняется всегда, так как она находится вне блока if.

else: А иначе...

Что, если условие не выполняется? Для этого есть оператор else (с англ. "иначе"). Он позволяет выполнить альтернативный блок кода, если условие в if оказалось ложным (False).

Синтаксис if-else:

if условие:
    # Блок кода, если условие истинно
else:
    # Блок кода, если условие ложно

Пример:

temperature = 25

if temperature > 30:
    print("На улице жарко, наденьте легкую одежду.")
else:
    print("На улице комфортная температура.")

# Изменим температуру
temperature = 35

if temperature > 30:
    print("На улице жарко, наденьте легкую одежду.")
else:
    print("На улице комфортная температура.")

В первом случае temperature > 30 (25 > 30) ложно, поэтому выполняется блок else. Во втором случае (35 > 30) истинно, выполняется блок if.

elif: Несколько вариантов выбора

Иногда у нас не просто два варианта (да/нет), а несколько возможных условий. Для таких случаев используется elif (сокращение от "else if" — "иначе если"). Вы можете использовать сколько угодно elif между if и else.

Синтаксис if-elif-else:

if условие1:
    # Блок кода, если условие1 истинно
elif условие2:
    # Блок кода, если условие1 ложно, а условие2 истинно
elif условие3:
    # Блок кода, если условие1 и условие2 ложны, а условие3 истинно
else:
    # Блок кода, если все предыдущие условия ложны

Важно: Python проверяет условия сверху вниз. Как только находит первое истинное условие, выполняет соответствующий блок кода и пропускает все остальные elif и else.

Пример:

Представим, что мы пишем программу для оценки успеваемости студента по баллам:

score = 85

if score >= 90:
    print("Отлично! Ваша оценка A.")
elif score >= 75:
    print("Хорошо! Ваша оценка B.")
elif score >= 60:
    print("Удовлетворительно. Ваша оценка C.")
else:
    print("Неудовлетворительно. Ваша оценка F.")

# Проверим с другими баллами
score = 50
if score >= 90:
    print("Отлично! Ваша оценка A.")
elif score >= 75:
    print("Хорошо! Ваша оценка B.")
elif score >= 60:
    print("Удовлетворительно. Ваша оценка C.")
else:
    print("Неудовлетворительно. Ваша оценка F.")

В первом случае score = 85.

  1. 85 >= 90False.
  2. 85 >= 75True! Выполняется print("Хорошо! Ваша оценка B."), и остальные elif/else игнорируются.

Во втором случае score = 50.

  1. 50 >= 90False.
  2. 50 >= 75False.
  3. 50 >= 60False.
  4. Выполняется блок else.

Вложенные условные конструкции

Вы можете вкладывать условные конструкции друг в друга. Это полезно, когда нужно проверить несколько условий последовательно.

weather = "солнечно"
mood = "хорошее"

if weather == "солнечно":
    print("Отличный день!")
    if mood == "хорошее":
        print("Пойдем гулять в парк!")
    else:
        print("Может, почитаем книгу на балконе?")
else:
    print("Погода не очень.")
    if mood == "хорошее":
        print("Посмотрим фильм дома.")
    else:
        print("Поспим.")

Обратите внимание на увеличение отступов для вложенных блоков.

Практическое задание 🚀

Напишите программу, которая запрашивает у пользователя его возраст (используйте input() для получения данных и int() для преобразования в число). В зависимости от возраста выведите следующее:

  • Если возраст меньше 7: "Слишком молод для школы."
  • Если возраст от 7 до 17 (включительно): "Пора в школу!"
  • Если возраст от 18 до 65 (включительно): "Время работать или учиться дальше!"
  • Если возраст больше 65: "Наслаждайтесь заслуженным отдыхом!"

Попробуйте запустить программу несколько раз, вводя разные значения возраста, чтобы убедиться, что она работает правильно.

Условные конструкции — это фундамент для создания логики в ваших программах. Они позволяют коду принимать решения и адаптироваться к различным входным данным. Но что, если нам нужно повторять одно и то же действие много раз? Для этого существуют циклы, о которых мы поговорим в следующем разделе.