Užitečný nástroj, který vědcům a datovým analytikům ulehčuje práci, se jmenuje Jupyter Notebook. Je to webová verze pythonní konzole, kde můžeme psát příkazy a kontrolovat výstup.
Na rozdíl od klasické konzole se v Notebooku příkazy (a jejich výstup) ukládají, a je tedy jednoduché se k nim vracet, upravovat je a přidávat komentáře. Mezi příkazy se pak dá psát text ve značkovacím jazyce Markdown, a plynule tak přecházet od pokusů a poznámek přes kód, který se dá sdílet, až po slajdy k prezentaci nebo dokonce publikovatelnou vědeckou práci (na což už jsou ale potřeba další nástroje). V Jupyter Notebooku jsou psány i tyto materiály.
Samotný Jupyter je napsaný v Pythonu, ale podporuje i jiné jazyky. Název pochází z JUlia, PYThon, R; kromě nich existují kernely pro desítky dalších jazyků.
Pro pythonní verzi stačí z PyPI nainstalovat balíček notebook
(nebo jupyter
, který „přitáhne” víc funkcionality).
Před instalací ale doporučuji aktualizovat samotný pip. (Virtuální prostředí bývají občas vytvářena s verzí pipu, která neumí pracovat s wheels – binárním formátem, ze kterého se instaluje mnohem rychleji než ze zdrojového kódu.)
$ python -m pip install --upgrade pip wheel
$ python -m pip install notebook
Tato instalace v některých případech vyžaduje nainstalované překladače jazyků jako C. Na školních systémech by měly být nainstalovány; v Linuxových distribucích jsou potřeba balíčky jako gcc
a python3-devel
. Kdyby se instalace nepovedla, potřebná závislost lze většinou dohledat pomocí chybových hlášek.
Nainstalovaný Notebook pusťte pomocí:
$ python -m notebook
V prohlížeči se otevře stránka se seznamem souborů v aktuálním adresáři; nový notebook se dá vytvořit přes tlačítko New
→Python 3
.
Nově vytvořený notebook má jednu buňku (cell), do které zapište kód a stiskněte Shift+Enter. Tím se kód vykoná, zobrazí se výstup a vytvoří se nová buňka, kam se dá psát další kód.
Kód se spouští pomocí Shift+Enter (a podobných příkazů); nezáleží na pořadí buněk v dokumentu. Je ale dobré psát buňky tak, aby při postupném spouštění (nebo Run All z menu Cell) kód fungoval – např. dávat importy na začátek.
Notebook je založený na konzoli IPython, která přidává některé vychytávky: doplňování pomocí tab, spouštění shellových příkazů pomocí !
nebo zobrazení nápovědy pomocí zadání ?
za výrazem. Vyzkoušejte např.:
str.l<TAB>
! ls -a<SHIFT+ENTER>
str.lower?<SHIFT+ENTER>
Kód v buňce může být víceřádkový. Je-li poslední příkaz v buňce výrazem, jeho hodnota se vypíše jako výsledek buňky:
1+1 # Nevypíše se (není poslední příkaz)
2+2 # Vypíše se
seznam = [5, 6, 3, 2]
print(seznam) # print() funguje
seznam.sort()
seznam # Poslední výraz se vypíše
Další možnosti, jako např. změna typu buňky na Markdown, jsou dostupné z menu nebo klávesovými zkratkami.