Python для новичковУправление ходом программыУсловная инструкция if и else

Условная инструкция if и else

Уроки курсаУсловная инструкция if и else

В предыдущих уроках вы уже работали с логическими выражениями и операторами сравнения — теперь эти знания пойдут в дело. Чтобы написать первую условную инструкцию, нужно сначала разобраться с тем, как Python вообще понимает, где заканчивается одна команда и начинается группа команд, которая должна выполниться вместе.

Блок кода и отступы в Python

В большинстве языков программирования группы инструкций обозначаются фигурными скобками {}. Python устроен иначе: вместо скобок он использует отступы — пробелы в начале строки.

Группа инструкций, объединённых под одной управляющей конструкцией, называется блоком кода. Блок начинается строго после двоеточия в конце заголовочной строки и продолжается до тех пор, пока строки идут с одинаковым углублением. Как только отступ возвращается на предыдущий уровень — блок заканчивается.

Стандарт Python — 4 пробела на каждый уровень вложенности. Технически интерпретатор примет и 2 пробела, и даже один, но в реальных проектах отступ в 4 пробела — это договорённость всего сообщества, и отступать от неё не стоит.

Вот как это выглядит схематично:

заголовок_конструкции:      # двоеточие обязательно
    инструкция_1            # 4 пробела — это блок
    инструкция_2            # тот же отступ — тот же блок
инструкция_вне_блока        # отступ вернулся — блок закончился

Почему это важно понять до знакомства с if? Потому что Python буквально определяет структуру программы по отступам. Если отступ нарушен или непоследователен, интерпретатор выбросит IndentationError и не запустит код вообще. Самая распространённая причина такой ошибки — смешивание пробелов и символов табуляции в одном файле: визуально они выглядят одинаково, но для Python это разные символы.

# Правильно: все отступы — пробелы, 4 штуки
заголовок:
    инструкция_1
    инструкция_2

# Ошибка: первая строка — таб, вторая — пробелы
заголовок:
	инструкция_1      # символ табуляции
    инструкция_2     # 4 пробела
# IndentationError: inconsistent use of tabs and spaces

Практический совет: сразу настройте редактор так, чтобы клавиша Tab автоматически вставляла 4 пробела — тогда этот класс ошибок исчезнет сам по себе.

Концепция блока кода и отступов универсальна для всего Python: она работает одинаково в if, else, циклах for и while, определениях функций. Освоив этот механизм сейчас, вы сможете применять его во всех последующих конструкциях Python — циклах, функциях и других — без дополнительных объяснений.