Условные конструкции в Python: if, elif, else

Раздел: Основы Python -> Управляющие конструкции

Основы условного оператора

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

Как написать стандартную условную конструкцию с несколькими вариантами?

Базовый синтаксис:


if условие:
    блок_кода
elif другое_условие:
    блок_кода
else:
    блок_кода

как на языке python записывается полное ветвление (полное ветвление в python)

Пример:


x = 10
if x > 0:
    result = "Положительное"
elif x == 0:
    result = "Ноль"
else:
    result = "Отрицательное"
print(result)

For и while python в чем разница (разница между циклами for и while в python)

Положительное

If then python 3 (условный оператор if then else в python 3)

Обязательно ставить двоеточие после условия. Отступы (обычно 4 пробела) определяют тело блока.

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

  • Пропущенное двоеточие после if/elif/else.
  • Неравномерные отступы (смешение пробелов и табуляции).
  • Использование then - такой синтаксис вызовет ошибку SyntaxError.
  • Забыть == для сравнения и написать = (присвоение).

Варианты использования

Как выполнить действие только при одном условии?

Используется только if:


if score >= 60:
    print("Сдал")

While языка python (цикл while в python)

Если условие ложно, блок пропускается.

Проблема:

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

Как выбрать один из двух вариантов?

Конструкция if – else:


age = 17
if age >= 18:
    access = "Разрешён"
else:
    access = "Запрещён"
print(access)

циклы в python конструкции (циклы while в python)

Запрещён

Match case python (конструкция match-case в python)

Выполняется ровно один из двух блоков.

Ошибка:

Попытка использовать else с условием - else условие: недопустимо. Для дополнительных условий применяется elif.

Как проверить несколько связанных условий?

Цепочка if – elif – else:


mark = 85
if mark >= 90:
    grade = "A"
elif mark >= 80:
    grade = "B"
elif mark >= 70:
    grade = "C"
else:
    grade = "D"
print(grade)

операторы ветвления в языке python (условные операторы в python)

B

Return s s python (оператор return в python)

elif - сокращение от else if. Проверка идёт по порядку до первого истинного условия.

Ошибка:

Слишком много ветвлений ухудшают читаемость. Рассмотрите использование словаря или match-case (Python 3.10+).

Как вложить одно условие в другое?

Вложенные if:


num = 15
if num > 0:
    if num % 2 == 0:
        print("Положительное чётное")
    else:
        print("Положительное нечётное")
else:
    print("Неположительное")

Глубину вложенности лучше ограничивать (2-3 уровня). Для сложной логики используйте логические операторы.

Проблема:

Глубокие отступы затрудняют чтение. Альтернатива: вынести проверки в отдельные функции.

Как записать условие в одну строку?

Тернарный (условный) оператор:


x = 5
message = "Положительное" if x > 0 else "Неположительное"
print(message)
Положительное

Выражение значение_если_истина if условие else значение_если_ложь. Подходит для простых присваиваний.

Ошибка:

Нельзя использовать этот оператор для выполнения действий (например, вызова нескольких функций). Он возвращает значение.

Логические операторы для сложных условий

Операторы and, or, not объединяют простые условия:


age = 20
has_license = True
if age >= 18 and has_license:
    print("Можно водить")
else:
    print("Нельзя")
Можно водить

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

Типичная ошибка:

Цепочки вида if 0 < x < 10 работают корректно, но их легко спутать с if 0 < x and x < 10 - последний вариант тоже допустим.

Дополнительные примеры с пояснениями

1. Цепочка сравнений

Python допускает множественные сравнения без and:

Пример

x = 25
if 10 < x < 30:
    print("x находится между 10 и 30")
else:
    print("вне диапазона")
x находится между 10 и 30

Блок выполняется, если все сравнения истинны. Это более читаемо, чем if x > 10 and x < 30.

2. Проверка вхождения в коллекцию

Оператор in проверяет наличие элемента в списке, кортеже, множестве или строке:

Пример

colors = ["красный", "синий", "зелёный"]
selected = "синий"
if selected in colors:
    print("Цвет доступен")
else:
    print("Цвет отсутствует")
Цвет доступен

Также полезно для проверки подстроки в строке: if "def" in code.

3. Использование булевых значений

Любое значение можно интерпретировать как True или False. Пример с пустыми контейнерами:

Пример

data = []
if not data:
    print("Список пуст")
else:
    print("В списке есть элементы")
Список пуст

Ложными считаются: None, False, 0, пустые строки, списки, словари и т.д. Используйте это для компактных проверок.

4. Короткое замыкание (short-circuit evaluation)

Операторы and и or прекращают вычисление, как только результат становится ясен. Это позволяет избежать ошибок:

Пример

items = None
if items is not None and len(items) > 0:
    print(f"Элементов: {len(items)}")
else:
    print("Нет данных")
Нет данных

Если бы items было None, то len(items) вызвало бы TypeError. Благодаря and вторая часть не вычисляется.

5. Пустой блок с pass

Если синтаксически требуется блок, но действие не нужно, ставят pass:

Пример

value = 42
if value > 0:
    pass  # будет реализовано позже
else:
    print("Отрицательное")

Используется как заглушка при разработке.

6. Вложенный тернарный оператор (с осторожностью)

Тернарный оператор можно вкладывать, но это ухудшает читаемость:

Пример

x = 7
category = "большое" if x > 10 else "среднее" if x > 5 else "малое"
print(category)
среднее

Такой код трудно понимать. Для нескольких условий лучше использовать if-elif-else.

7. Условное присвоение с or

Часто используется для выбора значения по умолчанию:

Пример

name = input("Введите имя: ") or "Гость"
print(f"Привет, {name}")

Если пользователь вводит пустую строку (ложь), то or возвращает "Гость".

8. Проверка типа с помощью isinstance

Условия могут включать проверку типа:

Пример

data = 3.14
if isinstance(data, (int, float)):
    print("Число")
else:
    print("Не число")
Число

isinstance принимает кортеж типов для проверки нескольких вариантов.

Условный оператор if then else в Python 3 - comments

En
If then python 3 (python)