Ветвления if / elif / else

Урок 3.2 · Программирование с нуля · Модуль 3. Условия · По подписке

Цель урока: Понять, как программа выбирает ветку через if, elif и else, и проверить промокод по-настоящему.

Нужно знать заранее: Сравнения

Объяснение

Зачем это нужно: В уроке 3.1 сравнения научились отвечать «да» или «нет». Но сам по себе ответ True или False ничего не делает: программа получила True и пошла дальше по той же дороге. Чтобы код действительно выбирал, нужна команда, которая смотрит на этот ответ и решает, какой блок выполнить. Она называется if — «если». Представьте интернет-магазин. Покупатель вводит промокод. Если код верный — скидка 20 %, если нет — скидки нет. Без if программа не может этого сделать: она либо всегда даёт скидку, либо никогда. С if появляется развилка: при одном ответе выполняется один блок, при другом — другой. То же самое в жизни: «если на улице дождь — взять зонт, иначе — не брать», «если возраст 18 или больше — пустить, иначе — показать отказ». А с оценками — три уровня: 90 и больше — «отлично», от 75 до 89 — «хорошо», меньше 75 — «повторить». Ученик попадает на первый уровень, который подошёл, и дальше не идёт. Почему 95 не попадает на второй уровень, хотя оно больше 75, разберём ниже. Ветвление — это и есть умение программы выбирать. В этом уроке мы проверим промокод по-настоящему: до сих пор скидка была задана числом, а теперь программа сама решит, давать её или нет.

Как это работает: if — «если». Пишется так: if условие: и с новой строки — блок с отступом. Если условие дало True, блок выполняется; если False — пропускается. else — «иначе». Стоит после if и выполняется тогда, когда условие if оказалось False. У else нет своего условия: это «во всех остальных случаях». elif — «иначе если». Нужен, когда вариантов больше двух. elif проверяет своё условие только тогда, когда все предыдущие оказались False. elif можно поставить несколько подряд. Двоеточие после условия обязательно: if promo == "SALE20":. Без него Python не поймёт, где начинается блок. Отступ — это пробелы в начале строки. Он показывает, какие команды входят в блок. Обычно ставят 4 пробела (в примерах урока — 2, чтобы короче). Все строки одного блока пишутся с одинаковым отступом. Кончился отступ — кончился блок. Порядок важен. Представьте мячики, которые падают сверху вниз через три кольца. Мячик — это балл: чем больше балл, тем больше мячик. Кольцо — это порог: 90, 75 и «всё остальное». Мячик пролетает сквозь кольцо, только если он меньше кольца. Если такой же или больше — застревает на нём и дальше не падает: уровень уже выбран. Кольца стоят сверху вниз от большого к меньшему. Мячик 95 больше кольца 90 — застрял на первом, «отлично». Мячик 80 меньше 90, но больше 75 — пролетел первое кольцо и застрял на втором, «хорошо». Мячик 60 меньше и 90, и 75 — пролетел оба и упал в третий, «повторить». А теперь перевернём порядок: сверху кольцо 75, ниже 90. Мячик 95 больше 75 — застрял на верхнем узком кольце, хотя должен был попасть в «отлично». Мячик 80 тоже застрял там. Мячик 60 пролетел оба и упал в третий. Крупные мячи застряли на узком кольце, а широкое внизу осталось пустым. Поэтому условия ставят от большего порога к меньшему. В коде второй уровень записывают короче: elif score >= 75. Верхнюю границу «до 89» не пишут, потому что до этой строки уже не доходят те, у кого 90 и больше: их забрал первый уровень. Python проверяет условия сверху вниз и выполняет ровно одну ветку — первую, где условие дало True. После этого он не проверяет остальные условия: ветка уже выбрана, и программа пошла выполнять её. Та же логика — в магазине с накопительной скидкой: чем больше сумма заказа, тем выше процент. Разберём её ниже. else необязателен: если он не нужен, можно оставить только if. elif тоже необязателен. Имена переменных берут из английского и пишут латиницей: promo — промокод price — цена count — количество discount — скидка total — итого, сумма без скидки saved — сколько сэкономили sale — к оплате Имя ничего не считает — оно объясняет человеку, что лежит внутри.

Уроки модуля 3

Что ещё есть на сайте

Учиться

  • Уроки — Все уроки трёх траекторий: список, поиск и ваш прогресс.
  • Программирование с нуля — Python с первой команды до своего проекта: 12 модулей.
  • Интерфейсы и сайты с нуля — Кнопки, страницы и мини-игры: результат виден сразу в браузере.
  • Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
  • Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
  • Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
  • Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
  • Конструктор описания задачи — Собрать описание по полям и получить готовый текст для исполнителя.

С чего начать

Потренироваться

  • Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
  • Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
  • Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
  • Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
  • Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.

Словари и юмор

Сайт, оплата и помощь

  • Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.
  • Инструкция пользователя — Как всё устроено: уроки, кабинет, уведомления, подписка, ярлык.
  • Сообщество — Вопросы и ответы: читать можно всем, писать — после входа.
  • Подписка — Тарифы, что входит, возврат 14 дней, история платежей.
  • Помощь и поддержка — Частые вопросы и форма обращения — ответ в течение дня.
  • Отзывы учеников — Что пишут те, кто уже учится: без звёзд, с проверкой каждого текста.
  • Профиль и пароль — Имя, пароль для входа без кода, уведомления, свои данные.