ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

if в Python: первое ветвление программы

Автор: · Обновлено

Конструкция if связывает логическое условие с блоком команд. Python вычисляет выражение после if; если результат равен True, выполняется блок с отступом. После него программа продолжает работу с первой строкой на исходном уровне отступа.

Где заканчивается ветка

temperature = 18

if temperature < 20:
    print('Возьми куртку')
    print('На улице прохладно')

print('Проверка погоды завершена')

Ожидаемый вывод:

Возьми куртку
На улице прохладно
Проверка погоды завершена

Первые две команды имеют одинаковый отступ и относятся к условию. Последний print расположен левее, поэтому выполняется независимо от температуры. При значении 25 останется только сообщение о завершении.

Двоеточие и четыре пробела

После условия обязательно двоеточие. Отступ обычно состоит из четырёх пробелов; смешивание табуляции и пробелов может вызвать TabError или сделать структуру визуально обманчивой. Пустой блок недопустим, но временно его можно обозначить командой pass.

Типичная смысловая ошибка — выбрать неверную границу. Фразе «температура не выше 20» соответствует <= 20, а не < 20. Проверьте значение точно на границе до проверки обычных случаев. Не сравнивайте числовой input как строку: сначала преобразуйте его через int.

Самостоятельный пропуск

Прочитайте количество набранных баллов. Если баллов не меньше 80, выведите «доступен бонус». После условия всегда выводите исходное число. Проверьте 79, 80 и 81 и заранее запишите ожидаемые строки. Затем добавьте вторую команду внутри ветки и убедитесь, что её отступ совпадает с первой. Задание выполнено, если при 79 программа не молчит полностью, а пропускает только условный блок.

От ветки к тестам

Возьмите правило бесплатной доставки при сумме не меньше 1000. Напишите один if и составьте три теста: 999, 1000, 1001. Добавьте всегда выполняемую строку с итоговой суммой и проверьте её положение по отступу. Затем временно замените условие на строгое и убедитесь, что тест границы обнаруживает изменение. Для второго эксперимента используйте пустой блок pass, а после добавления настоящего действия удалите его. Объясните, почему один тест с суммой 1500 не способен отличить два варианта оператора и как граница превращает требование в проверяемый контракт.

Практикум: предупреждение о температуре

Прочитайте температуру и выведите предупреждение только ниже −20 градусов. Для −21, −20 и −19 заранее запишите точный вывод, включая случай без сообщения. Добавьте обычное информационное сообщение после if и проследите, почему оно выполняется всегда. Затем намеренно нарушьте отступ и изучите IndentationError либо изменение блока. Итоговая программа должна отделять условное действие от продолжения общего сценария, а тесты — проверять границу, а не только далёкие значения.

Контрольная точка

Какие строки принадлежат телу if и как Python это определяет? Перерисуйте код как два блока и предскажите вывод при ложном условии.

Частые вопросы

Нужен ли else после каждого if?

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

Источники