Python
Как в Python записывается полное ветвление: if, else и elif
Полное ветвление в Python записывается с помощью if и else. Если условие после if истинно, выполняется первый блок кода. Если условие ложно, выполняется блок после else
Самая простая форма выглядит так
age = 18
if age >= 18:
print("Доступ разрешен")
else:
print("Доступ запрещен")
Здесь есть две ветки: одна для случая, когда условие выполняется, и одна для всех остальных случаев. Поэтому такую конструкцию и называют полным ветвлением
Короткий ответ
Шаблон полного ветвления в Python такой
if условие:
код_если_условие_истинно
else:
код_если_условие_ложно
Например
number = int(input("Введите число: "))
if number % 2 == 0:
print("Число четное")
else:
print("Число нечетное")
Оператор % возвращает остаток от деления. Если остаток от деления на 2 равен нулю, число четное
Почему важны отступы
В Python блоки кода определяются отступами. После строки if ...: и после строки else: код внутри ветки должен быть с отступом
Правильно
score = 75
if score >= 60:
print("Зачет")
else:
print("Незачет")
Неправильно
score = 75
if score >= 60:
print("Зачет")
else:
print("Незачет")
Во втором примере Python не поймет, какие строки относятся к веткам. Обычно используют 4 пробела на один уровень отступа
Что такое неполное ветвление
Неполное ветвление — это когда есть только if, без else
temperature = 38
if temperature > 37:
print("Температура повышена")
Если условие ложно, программа просто пойдет дальше и ничего не выполнит в этой точке. В полном ветвлении есть запасной вариант через else
temperature = 36.6
if temperature > 37:
print("Температура повышена")
else:
print("Температура в норме")
Как записать несколько вариантов через elif
Если вариантов больше двух, используется elif. Это сокращение от else if: иначе если
score = int(input("Введите балл: "))
if score >= 90:
print("Отлично")
elif score >= 70:
print("Хорошо")
elif score >= 50:
print("Удовлетворительно")
else:
print("Нужно повторить тему")
Python проверяет условия сверху вниз. Как только одно условие оказалось истинным, выполняется его блок, а остальные ветки пропускаются
Почему порядок условий важен
Такой код работает правильно
score = 95
if score >= 90:
print("Отлично")
elif score >= 70:
print("Хорошо")
else:
print("Нужно учиться дальше")
Если поменять условия местами, логика сломается
score = 95
if score >= 70:
print("Хорошо")
elif score >= 90:
print("Отлично")
else:
print("Нужно учиться дальше")
Число 95 больше 70, поэтому Python выполнит первую ветку и уже не дойдет до проверки score >= 90. Поэтому более строгие условия часто ставят выше
Как использовать and и or
В условии можно проверять несколько вещей сразу
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("Можно войти")
else:
print("Войти нельзя")
and означает, что должны выполниться оба условия. or означает, что достаточно одного условия
role = "admin"
if role == "admin" or role == "moderator":
print("Есть доступ к панели")
else:
print("Обычный пользователь")
Как записать вложенное ветвление
Ветка может содержать внутри себя еще одно условие
age = int(input("Возраст: "))
has_pass = input("Есть пропуск? да/нет: ")
if age >= 18:
if has_pass == "да":
print("Вход разрешен")
else:
print("Нужен пропуск")
else:
print("Вход только с 18 лет")
Вложенные условия работают, но их легко сделать слишком глубокими. Если уровней отступов становится много, код стоит упростить через and, or или отдельные функции
Мини-практика
Создайте файл branching_lesson.py
number = int(input("Введите число: "))
if number > 0:
print("Положительное число")
elif number < 0:
print("Отрицательное число")
else:
print("Ноль")
Запустите программу три раза: с положительным числом, с отрицательным и с нулем. Так вы увидите, как Python выбирает только одну ветку из нескольких
Частые ошибки
Первая ошибка — забыть двоеточие после if, elif или else
if age >= 18
print("Можно")
Правильно так
if age >= 18:
print("Можно")
Вторая ошибка — использовать = вместо == в проверке. Один знак присваивает значение, два знака проверяют равенство
if role == "admin":
print("Админ")
Третья ошибка — нарушить отступы. В Python отступы не украшение, а часть синтаксиса
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Задачи на циклы Python: полное руководство с примерами
- Face recognition Python: как установить и что делать при ошибках dlib
- Pandas и Matplotlib с Python: основы анализа данных
- Path в Python: как найти путь к файлу, папке и самому Python