Выполнение кода в ноутбуке
Содержание курса
Порядок выполнения и состояние kernel
Важная особенность Jupyter Notebook: состояние kernel (интерпретатора Python) хранится между запусками ячеек. Если в одной ячейке вы определили переменную, то в другой ячейке (даже находящейся ниже или выше) вы можете к ней обратиться после того, как первая была выполнена. Это позволяет разбивать код на логические блоки. Однако нужно быть осторожным с порядком выполнения.
Например, рассмотрим две ячейки:
-
Ячейка 1:
x = 10 -
Ячейка 2:
print(x)
Если вы сначала выполните ячейку 2 (которая печатает x), а затем ячейку 1 (которая присваивает x = 10), то вывод будет таким:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-2-...> in <module>
----> 1 print(x)
NameError: name 'x' is not defined
Вы получили ошибку, потому что на момент выполнения print(x) переменная x ещё не была определена (мы не запускали ячейку 1 до этого). Затем, выполнив ячейку 1, мы определили x, но вывод уже не пересчитался автоматически.
Если теперь снова выполнить ячейку 2 (print(x)), ошибок не будет, и вы увидите 10. Этот пример показывает: ячейки можно выполнять в произвольном порядке, но смысл имеет только тот порядок, в котором вы их запускали, а не расположение сверху вниз. Поэтому рекомендуется:
-
В начале работы запускать ячейки последовательно, сверху вниз, чтобы все переменные были определены.
-
Если вы запускали код вне порядка (например, вернулись и изменили что-то вверху), стоит воспользоваться Restart & Run All для чистоты эксперимента.
-
Обращать внимание на номера
[ ]: если вдруг нижняя ячейка имеет номер выполнения меньше, чем верхняя, значит, вы выполнили её раньше.
Kernel — это "сердце" ноутбука. В меню Kernel доступны действия:
-
Interrupt (Прервать): остановить выполнение текущей операции (как Ctrl+C в терминале).
-
Restart (Перезапустить): полностью перезапустить интерпретатор Python. Все переменные, функции и модули забудутся, память очистится. Полезно, если вы хотите начать выполнение "с чистого листа" без перезапуска всего Jupyter.
-
Restart & Run All: сочетает перезапуск kernel и запуск всех ячеек подряд. Очень полезно, чтобы убедиться, что ваш ноутбук может выполняться с нуля без ошибок в правильном порядке (например, перед отправкой кому-то).
