První krůčky
Připravená instalace pro tuto výuku¶
Pro účely tohoto předmětu budeme používat Jupyter Lab, což je v podstatě webové vývojové prostředí (nejen) pro jazyk Python. Umožňuje pracovat jednak v příkazové řádce, jednak v režimu notebooku. Jupyter notebook je interaktivní dokument, který obsahuje kód, výstup z kódu, případně další text, obrázky, matematické rovnice, apod.
Jupyter Lab je na FJFI přístupný pomocí JupyterHub serveru na adrese https://jupyter.fjfi.cvut.cz. Přihlásíte se pomocí vašeho školního účtu.
Po úspěšném přihlášení by se vám mělo zobrazit webové prostředí . Vypadá to nějak takto:
❗ Vyzkoušejte si všechny následující příklady použití Pythonu v Jupyter Labu ❗
Příkazová řádka (terminál)¶
Pro následující kroky budeme potřebovat příkazovou řádku. V Jupyter Labu se k ní dostanete v okně "Launcher" kliknutím na "Terminal" v sekci "Other":
Měl by se vám otevřít panel s příkazovou řádkou:
Základní interpret¶
Python je interpretovaný jazyk. Abychom spustili program, potřebujeme interpret. Tím je standardně program python
(python.exe
na MS Windows), přesnějí řečeno CPython -- interpret jazyka Python napsaný v C. Pokud ho spustíme, měli bychom vidět přibližně toto:
$ python
Python 3.11.7 (main, Jan 29 2024, 16:03:57) [GCC 13.2.1 20230801] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
je začátek vstupního řádku, kam můžeme psát příkazy. Např. "Hello world!" už jsme viděli:
>>> print("Hello world!")
Hello world!
Python interpret ukončíte klávesami ctrl + d
nebo příkazem exit()
.
Takto to vypadá v prostředí Jupyter Lab:
IPython -- komfortní práce v příkazové řádce¶
Téměř nezbytým rozšířením Python interpretru pro interaktivní práci v příkazové řádce je IPython. Ten přidává lepší dokončení pomocí tab klávesy, vyhledávání v historii a další vylepšení. Pojďme ho zkusit, stačí v příkazové řádce napsat ipython
:
$ ipython
Python 3.11.7 (main, Jan 29 2024, 16:03:57) [GCC 13.2.1 20230801]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.21.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
A v našem Jupyter Lab:
Dokončení tab klávesou (tab completion)¶
Po napsání jednoho nebo více písmen a zmáčknutí tab
klávesy se objeví možná dokončení (podle kontextu). Zkuste napsat pr
a zmáčknout tab
:
In [1]: pr
%%prun %precision %profile %prun print property
Historie¶
Historii lze procházet pomocí šipek nahoru a dolů. Historii zobrazíme také příkazem hist
(úplně správně je to %hist
-- viz níže). V historii lze také hledat. Podobně jako u tab klávesy, po napsání několika písmen se po zmáčknutí šipky zobrazují příkazy z historie, které těmito písmeny začínají.
Nápověda¶
Nápovědu (nejen) k funkcím zobrazíme funkcí help
nebo připojením ?
za příslušný příkaz:
help(print)
Triky (magics)¶
IPython přidává k samotným Python příkazům chytré triky, tzv. magics. Poznáme je podle toho, že začínají %
. Jedním takovým trikem je %automagick
, který nám umožnil použít hist
místo %hist
.
In [3]: %automagic?
Type: Magic function
String Form:<bound method AutoMagics.automagic of <IPython.core.magics.auto.AutoMagics object at 0x234a590>>
Namespace: IPython internal
File: /usr/lib/python2.7/site-packages/IPython/core/magics/auto.py
Definition: %automagic(self, parameter_s='')
Docstring:
Make magic functions callable without having to type the initial %.
Without argumentsl toggles on/off (when off, you must call it as
%automagic, of course). With arguments it sets the value, and you can
use any of (case insensitive):
- on, 1, True: to activate
- off, 0, False: to deactivate.
Note that magic functions have lowest priority, so if there's a
variable whose name collides with that of a magic fn, automagic won't
work for that function (you get the variable instead). However, if you
delete the variable (del var), the previously shadowed magic function
becomes visible to automagic again.
První jednoduchý program¶
(I)Python můžeme s úspěchem používat jako kalkulačku. Zkuste si následující příklady spusti v python
(případně ipython
) rozhraní:
1 + 8 / 2
Trochu složitější výpočet můžeme strukturovat pomocí proměnných. Takto např. vypočítáme obsah lichoběžníku.
a = 3.5
b = 2.1
v = 77e-1
(a + b) * v / 2
Případně můžeme vstupy i výsledek vypsat formátovaně:
S = (a + b) * v / 2
print(f"Obsah lichoběžníku {a=}, {b=}, {v=} je: {S=}")
Virtuální prostředí¶
Virtuální prostředí v Pythonu je způsob, jak izolovat různé projekty od sebe. Každý projekt může mít své vlastní závislosti na knihovnách, které mohou být různé. Virtuální prostředí nám umožňuje mít různé verze knihoven pro různé projekty.
Pro práci s virtuálními prostředími v Pythonu se používá knihovna venv
. Základní kroky jsou
- Vytvoření nového virtuálního prostředí příkazem
python -m venv <adresář-prostředí>
. - Přepnutí do prostředí příkazem
source <adresář-prostředí>/bin/activate
(na MS Windows je to.\env\Scripts\activate
).
Pro lepší orientaci a podrobné vysvětlení si projděte článek Python Virtual Environments: A Primer.
Vytvoření prostředí pro tento kurz¶
Pro tento kurz si vytvoříme nové prostředí na našem JupyterHub serveru. V příkazové řádce postupně zadejte následující příkazy:
- vytvoření nového adresáře
python
a přepnutí do nějmkdir python cd python
- vytvoření nového virtuálního prostředí v adresáři
.venv
(.venv
je běžná konvence pro pojmenování virtuálních prostředí)python -m venv .venv
- přepnutí do nově vytvořeného prostředí
source .venv/bin/activate
Vaše příkazová by poté měla vypadat nějak takto:
(.venv) 0 urbanjak@jupyter:~/python$
(.venv)
na začátku řádky značí, že jste v aktivovaném virtuálním prostředí. ~/python
je aktuální adresář. Právě v tomto adresáři jsme vytvořili nové virtuální prostředí a budeme do něj ukládat soubory pro tento kurz.
Přepínání do výukového prostředí¶
Kdykoli se znovu přihlásíte na JupyterHub, nebo si jen spustíte nový terminál, musíte se vždy přepnout do toho správného virtuálního prostředí. To uděláte následujícími příkazy:
cd ~/python
source .venv/bin/activate
Práce s notebooky¶
Jak už jsme zmínili výše, notebook je interaktivní dokument, který obsahuje buňky s (Python) kódem, výstup z kódu, případně další text, obrázky, apod. Všechny materiály pro tento kurz jsou k dispozici jako Jupyter notebooky.
O práci s notebooky se dozvíte více v článku Jupyter Notebook: An Introduction.
Registrace našeho prostředí v Jupyter Labu¶
Dříve než začneme pracovat s notebooky, musíme zaregistrovat naše virtuální prostředí jako kernel v Jupyter Labu. Jupyter Lab totiž umožňuje pracovat s notebooky v různých jazycích a prostředích. Aby věděl, jaké kernely má k dispozici, musíme mu je nějakým způsobem nainstalovat. Spusťte následující příkaz (je nutné mít aktivované virtuální prostředí pro tuto výuku!)
python -m ipykernel install --user --name python-fjfi --display-name "Python FJFI vyuka"
Toto stačí provést pouze jednou. Po této registraci bude Jupyter Lab vědět, že má k dispozici kernel Python FJFI vyuka
a můžete začít pracovat s notebooky.
První notebook¶
- Nejprve se v Jupyter Lab přepněte do seznamu souborů (ikona 📁 vlevo nahoře).
- Změňte adresář na
python
(dvouklik). - Klikněte na modré tlačítko + vlevo nahoře - mělo by se otevřít nové
Launcher
okno. - Klikněte v sekci
Notebook
naPython FJFI vyuka
- měl by se otevřít nový notebook.
Pokud se vše povedlo, měli byste mít otevřené okno s novým notebookem, pojmenovaným Untitled.ipynb
. Bude to vypadat nějak takto:
První kód v notebooku¶
- Zkuste si do první buňky napsat nějaký kód (např.
print("Hello notebook!")
) a spustit ho. Kód v buňce spustíte klávesovou zkratkoushift + enter
nebo kliknutím na tlačítko ▶. - Přidejte ještě další buňku s nějaký výpočtem a ověřte, že výsledek se zobrazí pod buňkou, aniž bychom použili funkci
print
. - Přejmenujte si notebook na něco smysluplnějšího pomocí
File
->Rename Notebook...
.
Mohlo by to pak vypadat takto:
Vlastní instalace¶
Pro instalaci Pythonu a Jupyter Labu na vlastním počítači doporučujeme použít distribuci Micromamba. Poté dle dokumentace můžete vytvořit nové virtuální prostředí a do něj nainstalovat Jupyter Lab a další baličky potřebné pro tento předmět.
Doporučujeme nejprve si osvojit výše popsaný JupyterHub a poté se teprve pustit do instalace na vlastním počítači.
Comments
Comments powered by Disqus