Условный оператор if / elif / else

Условный оператор if / elif / else

Все программы, которые мы писали до этого, выполнялись линейно — одна строка за другой. Но большинство реальных программ должны принимать решения: показывать разный контент в зависимости от роли пользователя, обрабатывать ошибочный ввод, вести себя по-разному в разных ситуациях. Для этого существует условный оператор if.

Синтаксис if

if условие:
    # блок кода, выполняется если условие True
    действие1
    действие2

Условие — любое выражение, которое Python может вычислить как True или False. После двоеточия — тело блока, которое обязательно оформляется отступом (4 пробела — стандарт Python). Отступ является частью синтаксиса, а не просто эстетикой.

temperature = 35

if temperature > 30:
    print("Жарко!")
    print("Возьмите воды")

print("Хорошего дня")  # выполняется всегда, не в блоке if

Если temperature больше 30, выводятся первые два сообщения. Последнее выводится всегда — оно вне блока if.

Отступы — часть синтаксиса

В Python отступы не декоративны — они определяют структуру программы. Строки с одинаковым отступом образуют один блок. Если нарушить отступы — получите IndentationError:

# Правильно:
if True:
    print("в блоке")
    print("тоже в блоке")
print("вне блока")

# Неправильно — IndentationError:
# if True:
# print("нет отступа!")

Стандарт Python — 4 пробела на каждый уровень отступа. Не используйте табуляцию вместе с пробелами — это вызывает ошибки.

Ветка else

else задаёт блок кода, который выполняется, если условие if ложно:

age = 16

if age >= 18:
    print("Вход разрешён")
else:
    print("Вам ещё нет 18 лет")

if и else — взаимно исключающие ветки: выполняется всегда ровно одна из них.

Несколько условий: elif

Если нужно проверить несколько условий по цепочке, используйте elif (сокращение от «else if»):

score = 75

if score >= 90:
    print("Отлично")
elif score >= 75:
    print("Хорошо")
elif score >= 60:
    print("Удовлетворительно")
else:
    print("Неудовлетворительно")

Python проверяет условия сверху вниз и выполняет первый блок, чьё условие оказалось True. Остальные блоки пропускаются. Здесь score = 75 → первое условие (>= 90) ложное → второе (>= 75) истинное → выводится "Хорошо".

Количество elif не ограничено. else в конце необязателен — если не нужен «случай по умолчанию».

Практический пример: классификатор BMI

weight = float(input("Вес (кг): "))
height = float(input("Рост (м): "))

bmi = weight / height ** 2

if bmi < 18.5:
    category = "недостаточный вес"
elif bmi < 25:
    category = "норма"
elif bmi < 30:
    category = "избыточный вес"
else:
    category = "ожирение"

print(f"ИМТ: {bmi:.1f} — {category}")

Составные условия в if

Условие в if может быть любым логическим выражением — с операторами and, or, not:

username = "admin"
password = "secret123"

if username == "admin" and password == "secret123":
    print("Добро пожаловать, администратор!")
else:
    print("Неверные учётные данные")
day = "суббота"

if day == "суббота" or day == "воскресенье":
    print("Выходной день")
else:
    print("Рабочий день")

Типичные ошибки

Забыть двоеточие:

# if x > 0   # SyntaxError: expected ':'
if x > 0:
    print("положительное")

Перепутать = и ==:

x = 5
# if x = 5:  # SyntaxError: нельзя использовать присваивание в условии
if x == 5:
    print("пять")

Перепутать уровни отступа:

if True:
    x = 1
    if x > 0:
        print("x положительное")
    print("это в первом if, не во втором")  # отступ 4, не 8
print("это вообще вне блоков")

Проверь себя

Что выведет этот код?

x = 10
if x > 5:
    print("A")
if x > 8:
    print("B")
if x > 15:
    print("C")

Здесь три независимых if, а не цепочка elif. Проверяются все три условия по очереди. x = 10: первые два истинны → выводятся A и B; третье ложно → C не выводится.

Итог

  • if условие: выполняет блок, если условие True.
  • else: выполняется, если условие if было False.
  • elif условие: — промежуточные ветки; Python берёт первое истинное условие.
  • Отступы (4 пробела) обязательны и определяют структуру блоков.
  • Условие может быть любым выражением, включая and, or, not.
  • if..if..if — три независимые проверки; if..elif..elif — цепочка, берёт первое совпадение.

В следующем уроке разберём, как вкладывать условия друг в друга для обработки сложных многоуровневых ситуаций.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике