Úvod, programovací prostředí, čísla
Python
Programovací jazyk Python vytvořil v devadesátých letech Guido van Rossum🌐. Jméno Python vybral podle britské surrealistické komediální skupiny Monty Python's Flying Circus🌐. Python patří mezi nejpopulárnější programovací jazyky. Pro studenty API je nezbytné se jej naučit.
Syntaxe Pythonu je navržena tak, aby nutila programátory psát čitelný, elegantní, přehledný, přímočarý a jednoznačný kód. Python je vhodný jak pro začátečníky, tak pro experty. Je také častou volbou pro vědecké výpočty, protože má mnoho rozsáhlých knihoven pro numerické výpočty, práci s daty, a také pro strojové učení a umělou inteligenci.
Pro vyjádření blokové struktury programu používá Python odsazení, na rozdíl od obvyklých jazyků, které používají složené závorky {} nebo klíčová slova jako begin a end.
Současná verze Pythonu je 3.x. My budeme pracovat s verzí 3.13.
Cíl kursu
Hlavním cílem kursu je učit se algoritmizaci, což je schopnost řešit úlohy pomocí algoritmů, tedy přesně popsaných postupů, krok za krokem, které lze napsat pomocí strojových příkazů. Strojem se rozumí počítací stroj, krátce počítač, který strojové příkazy mechanicky provádí (vykonává).
Strojové příkazy se zapisují v programovacím jazyce, v našem případě v Pythonu. Kolekce (nebo sekvence) strojových příkazů se nazývá program.
Programovací prostředí
Programy se nejčastěji vytvářejí v programovacím (vývojovém) prostředí.
Na přednáškách se bude používat jedna z variant zápisníku (notebooku) Jupyter, což je interaktivní prostředí, ve kterém lze kombinovat textové poznámky a kód.
Na cvičeních budeme používat online notebook Google Colab.
Jak vytvořit Google Colab zápisník
přihlašte se do svého Google účtu
otevřete https://colab.research.google.com/
dálší postup je zřejmý
Jupyter zápisníky mají příponu .ipynb (vychází z IPython Notebook🌐).
V zápisníku lze vytvářet textové buňky pro poznámky, a kódové buňky pro kód. Kód lze přímo v zápisníku provést.
Ponořme se do Pythonu
Vytvořte si nový zápisník v Google Colab. Do kódových buněk můžete psát nebo kopírovat kód a spouštět ho:
tlačítkem s trojúhelníčkem,
klávesovou zkratkou
Ctrl+Enter, neboklávesovou zkratkou
Shift+Enter, která kód spustí a pak přejde do následující buňky.
Verze Pythonu
Ověříme, že používáme Python 3.13:
pythonimport sys # import načte modul sys (system)
print(sys.version) # vypíše verzi Pythonu
Text od znaku # do konce řádky je tzv. komentář: je určen pro lidi, počítač jej ignoruje.
Nastavení prostředí
Otevřete si dialog Nástroje / Nastavení (zubaté kolečko vpravo nahoře) a nastavte:
Editor: pokud chcete, nastavte šířku odsazení v mezerách na 2 (vysvětlíme si). Standardní odsazení v Pythonu je 4 mezery.
Pomoc od AI: z počátku vypínejte generativní umělou inteligenci. Zabrání vám v myšlení.
Vstup a výstup
Trocha historie
Na počátku probíhal vstup a výstup dat do a z počítače přepínači a světélky, pomocí děrných štítků a řádkové tiskárny, dálnopisem, nebo na prvních obrazovkách a klávesnicích. Tento tzv. řádkový vstup a výstup probíhá v Pythonu pomocí příkazů (funkcí) input a print.
V Jupyter zápisníku probíhá výstup nejjednoduššeji přímo po vyhodnocení posledního výrazu v buňce:
python1 # číslo jedna
python'haló' # text v uvozovkách (řetězec, string)
python"haló" # text v dvojitých uvozovkách
pythonhaló # chyba (výjimka)
Chyba v posledním výrazu vyvolala výjimku (raised an exception), která ukončila běh programu (ano, už nejjednodušší výraz je programem) a vypsala obsah zásobníku (stack dump, traceback).
Proměnné
Problém byl v tom, že slovo haló je v Pythonu nedefinované (neznámé). Můžeme jej ale použít jako proměnnou. Proměnná je pojmenovaná buňka v paměti, která obsahuje odkaz (referenci) na hodnotu, tzv objekt. Všechna data v Pythonu jsou nějaký objekt a každý objekt je instance třídy (také zvané typ). Třída je kategorie objektů se stejnou strukturou a chováním, a také šablona pro jeich vytváření.
Jména proměnných v Pythonu mohou obsahovat českou diakritiku, a mnohem více, protože Python jako moderní jazyk podporuje utf8🌐.
Odkaz se do proměnné přiřadí operátorem =.
pythontři = 1 + 2 # první řádek (příkaz, výraz) programu
tři # poslední řádek, vypíše hodnotu
Čísla
Takto zjistíme třídu (typ) objektu:
pythontype(tři)
tři je typu int, což je zkratka pro integer, tedy celé číslo.
pythontype(3)
Literál (v textu zapsaná konstanta) 3 je také celé číslo.
pythontype(3.0)
Literál 3.0 je také číslo s plovoucí desetinnou čárkou (floating point).
Python rozeznává dva typy (třídy) čísel: int a float. float čísla mají v zápisu desetinnou tečku.
S čísly lze provádět aritmetické operace:
| Operátor | Operace |
|---|---|
| x + y | sčítání |
| x - y | odčítání |
| - x | negace |
| x * y | násobení |
| x / y | dělení |
| x % y | zbytek po dělení (modulus) |
| x // y | celočíselné dělení (floor) |
| x ** y | umocňování |
Moduly (knihovny)
Python má řadu rozšiřujících modulů. Jeden ze základních je modul math, který obsahuje řadu aritmetických funkcí.
pythonmath.sin(1) # sin je metoda objektu math
(chyba)
pythonimport math # modul je nutno importovat
math.sin(1)
Otázky:
Jaká je třída (typ) modulu
math?Jaké funkce (metody) obsahuje modul
math? (Nápověda:dir(math),help(math))
Vstup a výstup (input, output)
Jednoduché zadání a tisk:
pythonprompt = 'Zadejte hodnotu: '
value = input(prompt)
print('Zadali jste', value, '.')
Jakého typu je hodnota, kterou input() vrací?
pythontype(input())
Převod řetězce (str) na celé nebo desetinné číslo:
pythoncelé = int('1')
print(type(celé), celé)
desetinné = float('1')
print(type(desetinné), desetinné)
Ale:
pythoncelé = int('abc')
desetinné = float('abc')