Исторически, первый проект в сторону появления блокнотов — IPython, это более удобная консоль для работы в Python. Jupyter блокнот — набор ячеек двух видов, ячейки с текстом и ячейки с кодом на Python. Ячейки с текстом содержат форматированный код (формат Markdown), ячейки с кодом можно выполнить, причем переменные, созданные в одной ячейке, доступны во всех остальных. Зачем нужны такие блокноты:
x = 2 + 2
print(x)
4
print(x * x)
# читаем в память весь файл (http.pdf — только для примера)
with open('http.pdf', mode='rb') as f:
pdf = f.read()
print(pdf[:10])
b'%PDF-1.5\n%'
# можем узнать размер файла, повторное чтение не нужно
print(len(pdf))
366312
(формат Markdown)
Заголовки — несколько диезов в начале строки. Выделение курсивом, обрамляем текст подчеркиваниями или звездочками. Жирный — обрамляем двойными подчеркиваниями или двойными звездочками.
Нумерованные списки:
Нерумерованный:
Неформатированный текст (часто код), тройная обратная кавычка в начале и конце
Это неформатированный текст
или отступ 4 пробела
неформатированный текст
еще неформатированный текст
конец
Есть другие возможности.
У ячеек с кодом есть вывод, туда выводится то, что получилось после запуска кода в ячейке. Обычно там текст, который получается при печати из print(), но могут быть и более интересные объекты:
from matplotlib.pyplot import plot
plot([10, 20, 30], [30, 10, 20], 'ro')
[<matplotlib.lines.Line2D at 0x7f2419a49220>]
Блокноты хранятся в файлах ipynb (от IPython notebook). Эти файлы содержат всю информацию о содержимом клеточек и содержимое вывода в клеточках с кодом. Т.е. чтобы просмотреть блокнот, не обязательно запускать в нём код, результат выполнения кода сохраняется. Поэтому, Github, например, показывает ipynb файлы.
Ядро — это процесс в операционной системе, т.е. запущенная программа, которая выполняет код из ячеек и хранит значения переменных. Ядро надо запускать, его можно останавливать, можно перерывать, если оно зависло в процессе вычислений, можно перезапускать. После перезапуска значения переменных пропадают.
Ядра в Jupyter бывают не только для Python, поэтому название технолгии и изменилось с IPython на Jupyter (Julia + Python + R), сейчас IPyhton — это название Python ядра. Поэтому такое же интерактивное программирование с блокнотами можно делать и на других языках: Java, ...
Все не так просто. Если вы хотите работать с блокнотами на своей компьютере, т.е. запускать ядро на своем компьютере, необходимо установить Python + библиотеку Jupyter + некоторые другие библиотеки. После этого вы запускаете ядро, оно при запуске говорит, как к нему можно подключиться, показывает ссылку для браузера. Т.е. пользовательский интефрейс сделан в Web. Такая установка может быть не очень простой.
Другой вариант — можно установить Anaconda https://www.anaconda.com, это еще один дистрибутив Python, у него есть пользовательский интерфейс, чтобы запускать блокноты одной кнопкой.
Третий вариант — через PyCharm (IDEA), она сама предложит установить пакет Jupyter. Работа с ipynb возможна только в коммерческих версиях. (PyCharm Community — не подходит). Используйте академическую лицензию.
Онлайн блокноты:
У онлайн блокнотов есть ограничения, самое неприятное — ядра долго не живут, через какое-то время неактивности их надо перезапускать.
Есть много других сервисов для разной работы с блокнотами...