Python je univerzální programovací jazyk. Je to relativně vysokoúrovňový jazyk (například mnohem vyšší úrovně než C). První verze Pythonu se objevila v roce 1990, takže je mu nyní 36 let. Původně šlo o jednoduchý jazyk, který se postupem času stal složitějším. Základ jazyka však stále působí jednoduše a v tomto kurzu se budeme zabývat především jím.
Python je poměrně flexibilní a výkonný. Je také mimořádně rozšířený. Podle GitHubu je Python již několik posledních let druhým nejpopulárnějším jazykem (po JavaScriptu).
Python je však podstatně méně efektivní než jazyky jako C nebo C++ (alespoň ve své standardní implementaci nazývané CPython). Proto se obvykle nepoužívá pro programovací úlohy, u nichž je důležitá efektivita. Přesto zůstává velmi praktickým a užitečným jazykem.
Chcete-li do počítače nainstalovat interpret Pythonu, postupujte následovně:
Python pravděpodobně najdete nainstalovaný ve výchozím nastavení. Pokud ne, použijte správce balíčků svého systému. (V Ubuntu nebo Debianu doporučuji použít Synaptic.) Najděte balíček pro Python 3. Na mnoha systémech (např. Ubuntu) se jmenuje python3. Nainstalujte jej.
Ve webovém prohlížeči přejděte na stránku pro stažení Pythonu. Klikněte na tlačítko „Download Python 3.14.7“ (pokud bude k dispozici novější verze, může mít vyšší číslo). Po dokončení stahování instalačního programu jej spusťte a potvrďte všechna výchozí nastavení instalace.
Ve webovém prohlížeči přejděte na stránku pro stažení Pythonu. Klikněte na tlačítko „Download Python 3.14.7“ (pokud bude k dispozici novější verze, může mít vyšší číslo). Zobrazí se zpráva „What do you want to do with python-3.14.7-amd64.exe from python.org?“. Klikněte na Run.
Nyní se zobrazí okno „Install Python 3.14.7 (64-bit)“. V tomto okně nezapomeňte zaškrtnout políčko „Add Python 3.14 to PATH“. Poté klikněte na „Install Now“. Zobrazí se zpráva „Do you want to allow this app to make changes to your device?“. Klikněte na Yes.
V mnoha distribucích to provedete stisknutím klávesy Super a následným zadáním slova „terminal“.
Stiskněte Command + Space, zadejte „terminal“ a stiskněte Enter.
Stiskněte klávesu Windows, zadejte „command“ a stiskněte Enter.
Na všech výše uvedených systémech by při úspěšné instalaci Pythonu mělo jeho spuštění vést k výstupu podobnému tomuto:
$ python3 Python 3.14.4 (main, Aug 20 2026, 10:41:58) [GCC 15.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Výzva „>>>“ výše označuje, že se nacházíte v interaktivním interpretu Pythonu, známém také jako REPL (= read-eval-print loop, tedy smyčka čtení–vyhodnocení–výpisu). V interpretu můžete zadávat výrazy, které se vyhodnotí:
>>> 200 + 300 500 >>> 200 * 300 60000
Na některých systémech můžete Python spustit zadáním pouze „python“ místo „python3“.
Chcete-li interpret ukončit, zadejte Ctrl+D (v Linuxu nebo macOS) nebo Ctrl+Z a poté Enter (ve Windows). Tyto klávesové zkratky označují konec vstupu. Brzy se s nimi v tomto kurzu setkáme znovu.
První dva datové typy Pythonu, které se naučíme, jsou:
int – celé číslofloat – číslo s plovoucí desetinnou čárkou, tedy číslo, které může mít desetinnou částS těmito číselnými typy můžeme používat následující aritmetické operátory:
+ : sčítá dvě čísla (typu int nebo float)- : odečítá dvě čísla* : násobí dvě čísla/ : dělí dvě čísla a výsledkem je float** : umocňování// : provádí celočíselné dělení a výsledkem je int% : vypočítává zbytek po dělení dvou celých čísel (a mod b), výsledkem je int.Všimněte si, že celá čísla mohou být v Pythonu libovolně velká:
>>> 2 ** 100 1267650600228229401496703205376 >>> 2 ** 1000 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
Naproti tomu čísla s plovoucí desetinnou čárkou jsou uložena v pevně daném množství paměti, takže mohou obsahovat pouze určitý počet číslic:
>>> 2.0 ** 100 1.2676506002282294e+30
Výše uvedené e+30 znamená „krát 1030“. Všimněte si, že toto číslo s plovoucí desetinnou čárkou obsahuje pouze prvních 17 číslic hodnoty 2100, kterou jsme výše vypsali jako celé číslo.
Možný rozsah hodnot čísel s plovoucí desetinnou čárkou je v Pythonu velký, ale není nekonečný:
>>> 2.0 ** 1000 1.0715086071862673e+301 >>> 2.0 ** 10000 Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: (34, 'Numerical result out of range')
Operátor // dělí dvě celá čísla a výsledek zaokrouhluje směrem dolů na nejbližší celé číslo:
>>> 20 // 6 3
Operátor % vypočítává zbytek po dělení dvou celých čísel, tedy zbytek, který zbude po celočíselném dělení:
>>> 20 % 6 2
Všimněte si, že 20 = 3 * 6 + 2, tedy 20 = (20 // 6) * 6 + 2. To můžeme zobecnit: pro libovolná celá čísla a a b:
a = (a // b) * b + (a % b)
Mimochodem, při zápisu číselných konstant v Pythonu můžeme podtržítka umístit kamkoli. To může zvýšit jejich čitelnost:
>>> 1_000_000_000 + 100_000 1000100000
V Pythonu typ bool představuje logickou hodnotu, která je buď True, nebo False. Tyto konstanty jsou součástí jazyka:
>>> True True >>> False False
Python obsahuje porovnávací operátory, které mohou porovnávat čísla (nebo jiné druhy hodnot):
x < y (menší než)x <= y (menší nebo rovno)x > y (větší než)x >= y (větší nebo rovno)x == y (rovná se)x != y (nerovná se)Každý z těchto operátorů vytváří logickou hodnotu:
>>> 4 < 5 True >>> 5 < 2 False >>> 8 == 8 True >>> 8 != 9 True
Python má logické operátory, které mohou kombinovat logické hodnoty:
andornotNapříklad:
>>> True or False True >>> True and False False >>> not True False >>> not False True
Tyto logické operátory často používáme ke kombinování porovnání:
>>> 3 < 5 and 10 < 20 True >>> not 10 <= 50 False
Řetězec je posloupnost znaků, tedy kus textu. V Pythonu můžeme řetězce zapisovat v jednoduchých nebo dvojitých uvozovkách:
>>> 'potato' 'potato' >>> "grapefruit" 'grapefruit'
Jednoduché ani dvojité uvozovky nejsou součástí řetězce – pouze označují, že znaky uvnitř tvoří řetězec.
Řetězce obvykle zapisujeme v jednoduchých uvozovkách, dvojité uvozovky jsou však vhodné, když chceme zapsat řetězec, který uvnitř obsahuje jednoduché uvozovky:
>>> "she didn't say why" "she didn't say why"
Všimněte si, že některé operátory, které jsme viděli výše, fungují i s řetězci. Operátor + spojí dva řetězce:
>>> 'pizza' + 'pie' 'pizzapie'
Operátor * spojí více kopií řetězce za sebou:
>>> 3 * 'orange' 'orangeorangeorange' >>> 'xyz' * 10 'xyzxyzxyzxyzxyzxyzxyzxyzxyzxyz'
Porovnávací operátory, které jsme viděli výše, porovnávají řetězce abecedně:
>>> 'house' < 'sky' True >>> 'xyzzy' == 'xyzzy' True
Zde jsou vestavěné datové typy, které jsme se dosud naučili:
intfloatboolstringTyto typy budou dostačující pro psaní mnoha programů. Později se seznámíme s dalšími vestavěnými datovými typy a dokonce se naučíme vytvářet vlastní typy.
Každý typ, který jsme viděli, má přidruženou funkci pro převod typu:
int(x) převede x na celé číslo. Desetinná část se zahodí; například int(45.228) vytvoří 45. True se převede na 1 a False na 0.float(x) převede x na číslo s plovoucí desetinnou čárkou. (Pokud je x obrovské celé číslo, nemusí se do něj vejít a dojde k chybě.)bool(x) převede x na logickou hodnotu. Jakékoli nenulové číslo se převede na True a nula na False. Pokud je x řetězec, výsledná hodnota bude True, pokud řetězec není prázdný, nebo False, pokud je prázdný.str(x) převede x na řetězec.V našich programech budeme zejména často převádět řetězce na celá čísla:
>>> int('52')
52
Pro psaní programů v Pythonu budete pravděpodobně chtít používat IDE (integrované vývojové prostředí) namísto obyčejného textového editoru. K dispozici je mnoho různých IDE. Obecně doporučuji Visual Studio Code, které je open source, funguje na všech hlavních platformách (tj. operačních systémech) a podporuje mnoho různých programovacích jazyků včetně Pythonu.
Všimněte si, že (poněkud matoucím způsobem) Visual Studio Code není stejný program jako Visual Studio, což je starší IDE s uzavřeným zdrojovým kódem, které funguje pouze ve Windows. Při čtení dokumentace online se ujistěte, že se týká programu, který skutečně používáte. (Visual Studiu se v tomto kurzu nebudu věnovat.)
Ve Visual Studio Code nezapomeňte nainstalovat rozšíření Python a Pylance. Umožní IDE rozpoznávat chyby ve vašem Pythonovém kódu a upozorňovat na ně při jeho psaní.
Ve Visual Studio Code obecně doporučuji otevřít složku, ve které můžete mít jeden nebo více zdrojových souborů. Spusťte Visual Studio Code a v nabídce zvolte File / Open Folder…. Při příštím spuštění Visual Studio Code se dříve otevřená složka otevře automaticky.
Po otevření složky v ní můžete vytvořit nový zdrojový soubor. Klikněte pravým tlačítkem v levém panelu a z kontextové nabídky zvolte „New File…“, nebo klikněte nahoře na malou ikonu New File (vypadá jako dokument se znaménkem +). Podle konvence mají zdrojové soubory Pythonu vždy příponu „.py“.
Například vytvořte soubor hello.py a zadejte do něj tento text:
print('hello, world')
Toto je jednopříkazový Pythonový program, který vypíše řetězec. Soubor uložte. Nyní jej spusťme. Jednou z možností je kliknout na ikonu Run Python File, která vypadá jako malý trojúhelník v pravém horním rohu okna editoru. Po kliknutí se program spustí v panelu Terminal ve spodní části okna Visual Studio Code.
Alternativně můžete nejprve otevřít interní okno terminálu stisknutím Ctrl+` a poté do něj zadat python hello.py, čímž program spustíte.
Já však obecně dávám přednost spouštění Pythonových programů v externím okně terminálu. Otevřete je pomocí Ctrl+Shift+C (v Linuxu nebo Windows) nebo Command+Shift+C (v macOS). Otevře se okno terminálu, jehož aktuální adresář bude stejný jako složka, kterou si prohlížíte ve Visual Studio Code.
Po otevření externího terminálu můžete spustit Python a předat mu název zdrojového souboru:
$ python hello.py hello, world $
Téměř každý program načítá vstup a vytváří výstup. V Pythonu k tomu budeme používat následující dvě vestavěné funkce:
input() – načte řádek ze standardního vstupu a vrátí řetězecprint() – vypíše jednu nebo více hodnot na standardní výstupStandardní vstup obvykle přichází z okna terminálu, ve kterém program spouštíte. Podobně se standardní výstup obvykle vypisuje do okna terminálu. (Brzy uvidíme, že pokud chcete, můžete nastavit standardní vstup a výstup tak, aby používaly soubor.)
Například zde je program:
print('What is your name?')
name = input()
print('hello', name)
Spusťme jej:
$ python hello.py What is your name? fred hello fred $
Všimněte si, že funkce input() může přijmout volitelný parametr určující výzvu (prompt), která se vypíše před načtením vstupu. Předchozí program bychom například mohli přepsat takto:
name = input('What is your name? ')
print('hello', name)
Uživatel pak zadá vstup na stejném řádku, na kterém byla vypsána výzva:
$ py hello.py What is your name? joe hello joe $
Jak bylo uvedeno výše, input() vrací řetězec. Často zavoláme int(), abychom výsledek funkce input() převedli na celé číslo:
x = int(input('Enter x: '))
print(x * x)
$ py hello.py
Enter x: 111
12321
$
V příkladech z předchozí části jsou name a x proměnné. V Pythonu můžeme proměnné přiřadit hodnotu libovolného typu:
>>> x = 17 >>> y = 'mountain' >>> x 17 >>> y 'mountain'
Během běhu programu se hodnoty proměnných mohou v průběhu času měnit. Program
x = 100 print(x + 2) x = 200 print(x + 2)
vytvoří výstup
102 202
Jak vidíme v příkladech výše, operátor přiřazení „=“ přiřadí proměnné novou hodnotu. Dávejte pozor, abyste jej odlišili od porovnávacího operátoru „==“, který testuje, zda jsou dvě hodnoty stejné.
Často proměnné přiřadíme novou hodnotu vytvořenou z její staré hodnoty:
>>> x = 77 >>> x = x + 2 >>> x 79
Příkaz x = x + 2 znamená „nová hodnota x je stará hodnota x plus 2“. (Naproti tomu v matematice je „x = x + 2“ rovnice bez řešení.)
Pomocí příkazů if a else můžeme podmíněně provádět kód:
x = int(input('Enter x: '))
if x > 1000:
print("That's a big number.")
else:
print("It's not so big.")
print("Try to think of something bigger.")
Příkaz if přijímá logickou podmínku. Pokud je podmínka pravdivá, provede řádky následující po if; v opačném případě provede řádky následující po else. Všimněte si, že každý z těchto bloků může obsahovat jeden nebo více řádků kódu. Všimněte si také, že Python používá odsazení (prázdné znaky na začátku řádku) k rozpoznání těchto bloků.
Příkaz if nemusí obsahovat část else. Pokud ji neobsahuje a podmínka je nepravdivá, neprovede se nic.
Příkaz if může obsahovat jednu nebo více částí elif. elif znamená „else if“. Například:
if x > 1000:
print("That's a big number.")
elif x > 100:
print("It's kind of big.")
elif x > 0:
print("It's not very big, but at least it's positive.")
elif x == 0:
print("It's zero.")
else:
print("It's negative.")
Na libovolném řádku Pythonového programu jsou všechny znaky za znakem „#“ komentářem a ignorují se. Komentáře jsou užitečné pro přidávání vysvětlujícího textu do programů:
x = int(input())
if x % 2 == 0: # x is even
x = x // 2
else: # x is odd
x = 3 * x + 1
Ve Visual Studio Code můžete stisknutím Ctrl+/ zakomentovat nebo odkomentovat aktuálně vybraný blok kódu.
Jak víme, příkaz x = x + 2 znamená „přičti k proměnné x hodnotu 2“.
Ve skutečnosti je tento typ operace tak běžný, že Python má pro něj speciální operátor přiřazení +=, který umožňuje tento příkaz zapsat stručněji:
>>> x = 10 >>> x = x + 2 # add 2 to x >>> x 12 >>> x += 2 # add 2 to x >>> x 14
Operátory -=, *=, /=, //= a %= fungují podobně. Například:
>>> y = 100 >>> y *= 20 # multiply y by 20 >>> y 2000
Inkrementovat proměnnou znamená přičíst k ní 1. Podobně dekrementovat proměnnou znamená odečíst od ní 1:
x += 1 # increment x y -= 1 # decrement y
Cyklus while provádí vnořený blok příkazů (tělo cyklu), dokud je podmínka pravdivá. Například:
x = int(input('Enter x: '))
while x > 0:
print(x)
x = x - 1
print('Liftoff!')
Spusťme jej:
$ py count.py Enter x: 10 10 9 8 7 6 5 4 3 2 1 Liftoff! $
Zde je program, který pro libovolné N vypočítá součet celých čísel od 1 do N:
n = int(input('Enter n: '))
sum = 0
while n > 0:
sum = sum + n
n = n - 1
print('The sum is', sum)
Zkusme jej:
$ py sum.py
Enter n: 10
The sum is 55
$
print('The sum is', sum)
Nakonec zde je program, který odstraní všechny nuly na konci celého čísla v desítkové soustavě:
a = int(input('Enter a: '))
while a % 10 == 0:
a = a // 10
print(a)
Příkaz for prochází posloupnost hodnot. Může například procházet rozsah celých čísel:
for i in range(1, 5):
print(i)
vytvoří
$ py hello.py 1 2 3 4 $
Všimněte si, že program vypsal čísla 1 až 4, ale ne 5. Je to proto, že v Pythonu range(a, b) vytváří posloupnost hodnot od a až po b, ale b už nezahrnuje. To může působit překvapivě. Později možná uvidíte, proč to v některých souvislostech dává smysl. Prozatím je to něco, na co si musíte zvyknout.
Pomocí for můžeme součet celých čísel od 1 do N vypočítat o něco snadněji:
n = int(input('Enter n: '))
sum = 0
for i in range(1, n + 1):
sum = sum + i
print('The sum is', sum)
Ve skutečnosti může for procházet mnoho dalších druhů posloupností. Může například procházet všechny znaky v řetězci:
for c in 'hello':
print(c)
Výsledkem je výstup
$ py hello.py h e l l o $