Глава 3 · Ваша первая программа на Python

Notebook и kernel

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

Мы уже проходили практику этого курса в браузере — самое время объяснить, что там на самом деле происходит, с точки зрения выполнения кода.

Notebook — это не то же самое, что kernel

03-lesson.ipynbфайл с ячейкамиNotebook-интерфейспоказывает ячейкиKernelпроцесс PythonРезультатвозвращается в ячейку
От файла блокнота до результата — через ядро

Один и тот же файл блокнота можно открыть и подключить к разным ядрам — например, к ядру с одним набором установленных пакетов или с другим (мы говорили об этом в главе 2, раздел 2.15, применительно к VS Code).

Важная особенность: состояние сохраняется между ячейками

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

Ячейка 1
x = 10
Ячейка 2 (запущена ПОСЛЕ ячейки 1)
print(x)  # 10 — x всё ещё существует
Порядок запуска ячеек — это не порядок ячеек на экране
Если запустить ячейки не по порядку (например, вторую раньше первой) или перезапустить ядро, не выполнив всё заново, — результат может не совпасть с тем, что вы видите на экране. Это одна из самых частых причин путаницы у новичков в блокнотах: то, что показано на экране, — результат ПОСЛЕДНЕГО запуска, а не гарантия того, что получится при выполнении сверху вниз прямо сейчас.

Как устроена браузерная практика этого курса

Все интерактивные упражнения курса — настоящий Python, а не имитация. Устроено это так:

Браузеринтерфейс урокаWorkerфоновый поток вкладкиPyodideнастоящий Python вбраузереГрейдерпроверяет результат
Как устроена браузерная практика этого курса

Pyodide — это реальный интерпретатор Python, скомпилированный в WebAssembly и запускающийся прямо в вашем браузере, без установки на компьютер. Это ещё одна среда выполнения — со своими ограничениями: например, у неё нет доступа к нативным графическим окнам операционной системы, поэтому пакеты вроде tkinter в чистом виде там не работают (в курсе такие упражнения честно помечены как «локальные» — вы уже видели это в главе 2).

Официальный источник
Подробнее о самом Jupyter — jupyter.org; о Pyodide — pyodide.org.