Základy Pythonu
V této kapitole si představíme úplné základy programování v Pythonu. Ještě nebudeme psát celé programy, ale budeme zatím Pythonu posílat jednotlivé příkazy a uvidíme, co nám odpoví.
Abychom si mohli s Pythonem povídat, musíme spustit takzvanou Python konzoli. To je prostředí, ve kterém můžeme s Pythonem komunikovat a posílat mu příkazy.
Pokud pracujete pod Windows, Python konzoli spustíte tak, že do terminálu napíšete příkaz
python
Pokud pracujete na Macu nebo Linuxu, správný příkaz je
python3
Hodnoty
ValuesHodnoty představují všechny možné druhy dat, se kterými můžou naše programy pracovat. Hodnoty se dle způsobu použití dělí do různých kategorií zvaných data typesdatové typy. Datových typů existuje velké množství. V tuto chvíli si představíme ty nejzákladnější - celá čísla a desetinná čísla.
Celá čísla
Nejjednodušší datový typ jsou integerscelá čísla. Pod tento typ patří hodnoty jako 12, 1321500, -5, 0 a podobně. Pokud do Python konzole napíšete hodnotu, Python vám ji vypíše zpátky, což znamená, že vám rozumí 🙂.
>>> 127
127
Desetinná čísla
S celými čísly bychom si dlouho nevystačili. Dalším datovým typem tedy budou floating point numbersdesetinná čísla, např. 13.4, 6.0, -0.0001, 0.0 apod. Pozor, že programátoři vždycky píší desetinná čísla s tečkou, nikoliv s čárkou.
Aritmetické operátory
Nyní už máme prostředky k tomu, abychom mohli pomocí Pythonu něco spočítat. V Pythonu máme k dispozici běžné aritmetické operátory:
- sčítání:
+
- odčítání:
-
- násobení:
*
- dělení:
/
Díky těmto operátorům můžeme Python použít jako kalkulačku a psát arithmetic expressionsaritmetické výrazy jako ve škole.
>>> 12 * 13 + 10
166
>>> (13.4 - 1.4) / 4
3.0
Všimněte si, že můžeme používat kulaté závorky, pokud potřebujeme změnit prioritu operací.
Proměnné
Při komplikovanějších výpočtech se nám často stane, že si potřebujeme nějaký mezivýpočet uložit pro pozdější použití. K tomu nám slouží takzvané variablesproměnné. Proměnná je jakási pojmenovaná krabička nebo šuplík, do kterého si můžeme uložit nějakou hodnotu, abychom ji neztratili a mohli ji používat v dalších výpočtech.
Můžeme například v rámci dietního programu spočítat, kolik vanilkových věnečků denně jsme spořádali za posledních 5 dní.
>>> celkem = 1 + 2 + 4 + 1 + 6
>>> prumer = celkem / 5
Jména proměnných
Už od úplných začátků s programováním je dobré učit se dobrým návykům, které budou později prospěšné nejen vám, ale hlavně lidem ve vašem okolí. Jedním z takových návyků je správné pojmenovávání proměnných.
- Název proměnné by neměl začínat velkým písmenem, např.
. Takové názvy jsou rezervované pro speciální typy proměnných, ke kterým se v tomto kurzu dostaneme až téměř na konci.Pocet
- Název proměnné by neměl obsahovat diakritiku, např.
. Programovací jazyky vznikaly v anglickém prostředí, kde se diakritika nepoužívá, takže si s ní většina jazyků neporadí.počet
- Víceslovné proměnné nesmí obsahovat mezeru, např.
. To by si Python myslel, že to jsou dvě proměnné za sebou a nevěděl by co s tím. Pokud chcete proměnnou s více slovy, použijte takzvanou camel casevelbloudí notacipocet hodin
pocetHodin
nebo snake casehadí notacipocet_hodin
. - Vždy proměnnou pojmenujte tak, aby její název jasně napovídal, co se uvnitř ní nachází. Například proměnná
pocet_hodin
jasně říká, že v ní bude uložen asi nějaký počet hodin. Můžeme podlehnout touze název proměnné zkrátit například napcthdn
, aby se nám lépe psala. Až ovšem někdo další bude takový program číst, bude mlátit hlavou do stolu, cože proboha znamená zkratkapcthdn
. - Naposledy je dobré si uvědomit, že programy i programátoři se téměř vždy pohybují v mezinárodním prostředí. Takže je vždycky lepší pojmenovávat proměnné anglicky. V tomto kurzu ještě tohle pravidlo trošku rozvolníme, ale i tak si můžete začít zvykat na proměnné s názvem
number_of_hours
.
Nástrahy
Dejte pozor na to, že Python není Excel. Do proměnné se jako do šuplíku ukládá pouze hodnota a nikoliv celý výpočet. Pokud tedy napíšeme například
>>> sazba = 350
>>> vyplata = 8 * sazba
bude v proměnné vyplata
uložena hodnota 2800. Jestliže potom změníme hodnotu v proměnné sazba
na něco jiného, například
>>> sazba = 420
v proměnné vyplata
bude nadále uložena hodnota 2800. Pokud chceme výsledek výpočtu aktualizovat, musíme jej spustit znova.
>>> vyplata = 8 * sazba
Cvičení: Hodnoty, proměnné
Výplata
- Spočítejte svůj měsíční příjem víte-li, že pracujete 7 hodin denně se mzdou 450 Kč na hodinu. Řekněme, že měsíc má 21 pracovních dní.
- Uložte si počet pracovních hodin za den do proměnné hodin, hodinovou mzdu do proměnné mzda a počet pracovních dní do proměnné dni. Spočítejte svou výplatu s použitím těchto proměnných.
Funkce
S čísly jsme zatím byli schopní pracovat pouze pomocí aritmetických operátorů. To nám ale brzy nebude stačit a budeme potřebovat složitější operace, kterým říkáme functionfunkce.
Funkce je nějaký komplikovanější výpočet zabalený do jakési krabičky. Této krabičce dáme nějaké jméno, abychom jej mohli používat na různých místech v našem programu.
Dobrým příkladem je funkce round()
, která pro nás dělá zaokrouhlování. Můžeme tedy psát
>>> round(3.4)
3
Tomuto zápisu se říká function callvolání funkce. Když funkci voláme, předáváme jí takzvaný argumentargument, v našem případě číslo 3.4. Když funkci zavoláme s nějakým argumentem, funkce takzvaně returnvrátí výsledek.
Funkci si můžeme představit například jako topinkovač. Topinkovač pro nás dělá nějakou užitečnou činnost, kterou chceme často opakovat (opéká topinky). Má svoje jméno (topinkovač). Do topinkovače dáme chleba (argument) a spustíme je (zavoláme). Topinkovač chvíli pracuje a pak nám vrátí výsledek - topinky. Důležité je, že nemusíme řešit jak to topinkovač vlastně dělá, že dokáže opéct chleba. Důležité pro nás je, že to umí a že jej můžeme kdykoliv použít.

Seznamy
Zatím jsme byli schopní do jedné proměnné uložit pouze jednu hodnotu. Pro práci s daty ale budeme potřebovat pracovat s větším množstvím hodnot než pouze s jednou. K tomu nám poslouží takzvané listsseznamy.
Představme si, že si chci zaznamenat počet vanilkových věnečků snědených za posledních 7 dní. V Pythonu si můžu pro tento účel vytvořit seznam, který si uložím do vhodně pojmenované proměnné.
>>> venecky = [1, 2, 4, 1, 6, 0, 1]
Chceme-li přistoupit k jednotlivým hodnotám uvnitř seznamu, použijeme k tomu hranaté závorky.
>>> venecky[0]
1
>>> venecky[4]
6
POZOR! Programátoři jsou podivné bytosti, které vždy počítají od nuly, nikoliv od jedničky. Proto také první hodnota v našem seznamu má index 0.
Snadno také můžeme některou hodnotu v seznamu změnit. Například když si vzpomeneme, že jsme trošku zalhali ohledně konzumace věnečků v sobotu:
>>> venecky[5] = 12
Z jednoho seznamu můžeme také získat menší kusy podle zadaných mezí
>>> venecky[2:5]
[4, 1, 6]
>>> venecky[:3]
[1, 2, 4]
>>> venecky[3:]
[1, 6, 12, 1]
Vnořené seznamy
Seznam může obsahovat jakékoliv hodnoty, tedy nejen celá čísla. Nezapomeňte, že seznamy jsou také hodnoty, takže jeden seznam může obsahovat jiný seznam jako svůj prvek. Například takto:
>>> seznam = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Rozmyslete si, co vypíšou následující výrazy:
>>> seznam[0][1]
>>> seznam[2][0]
>>> seznam[1:][1]
>>> seznam[:1][2]
Užitečné funkce nad seznamy
Pro práci se seznamy se nám může hodit několik funkcí:
len()
: Vrátí délku seznamu
sum()
: Vrátí součet všech prvků v seznamu
min()
: Vrátí nejmenší prvek seznamu
max()
: Vrátí největší prvek seznamu
sorted()
: Vrátí setříděný seznam
Cvičení: Seznamy
Pohyby na účtu
Mějme seznam pohybů na nějakém bankovním účtu:
pohyby = [1200, -250, -800, 540, 721, -613, -222]
- Vypište v pořadí třetí pohyb z uvedeného seznamu.
- Vypište všechny pohyby kromě prvních dvou.
- Vypište kolik je všech pohybů dohromady
- Pomocí volání vhodných funkcí vypište nejvyšší a nejnižší pohyb.
- Spočítejte celkový přírůstek na účtu za dané období. Pozor, že přírůstek může vyjít i záporný.