Функция изолирует подзадачу, стек хранит незавершённые вызовы, а рекурсия превращает определение через меньший аргумент в программу.
Диспетчер миссий
Каждый рекурсивный вызов получает собственные параметр и локальную переменную. Листайте миссии, чтобы увидеть кадры стека до и после return.
def mission(level): fuel = level * 2 if level == 0: return 1 return fuel + mission(level - 1)
Маршрут главы
Три темы открыты сразу. Практикум и экзамен проверяют не угадывание, а устойчивый навык анализа и написания кода.
Функции и параметры
Функция получает аргументы, создаёт локальные параметры и возвращает значение. Вызов можно использовать внутри более крупного выражения.
Открыть тему →39.2 · теория и трассаЛокальные переменные и стек вызовов
Каждый вызов получает отдельный кадр стека со своими параметрами и локальными переменными. После return кадр удаляется.
Открыть тему →39.3 · теория и трассаРекурсивные алгоритмы
Рекурсивная функция содержит базовый случай и переход к меньшей задаче. Ответ собирается при обратном сворачивании стека.
Открыть тему →39.4 · практикаПрактикум
Двадцать диагностических вопросов с четырьмя исходами и восемь программных задач со дополнительными тестами.
Начать тренировку →39.5 · контрольПроверка навыка
Таймер не сбрасывается при перезагрузке, правильность скрыта до завершения, программная задача обязательна.
Открыть вариант →39.6 · авторский кодPython-студия
Выбери задачу, измени алгоритм и пройди видимые и скрытые тесты в изолированном runtime.
Открыть студию →