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. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x