Přehled všech témat
Algoritmické myšlení | |
Posloupnost akcí | |
Opakování, cykly | |
Podmínky | |
Paralelismus | |
Proměnné | |
Plánování a omezené zdroje | |
Abstrakce, funkce | |
Ladění, hledání chyb | |
Algoritmické myšlení: mix |
Programování v Pythonu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Proměnné a výrazy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Proměnné a číselné výrazy v Pythonu | Více Proměnné a číselné výrazy v PythonuProměnná je jméno, které odkazuje na nějakou hodnotu. Hodnota proměnné se může měnit – ostatně se taky jmenuje „proměnná“. Názvy proměnnýchNázvy proměnných mohou obsahovat písmena, čísla a znak podtržítko. Nesmí obsahovat mezeru a nesmí začínat na číslo. V názvech proměnných se rozlišují velká a malá písmena, tj. Příklady:
Vytvoření a aktualizace proměnnéProměnnou vytvoříme prostě tak, že do ní přiřadíme hodnotu. Hodnotu můžeme následně aktualizovat. Proměnná drží poslední hodnotu, která do ní byla přiřazena. Pro přiřazení používáme rovnítko:
Proměnné mohou být různého typu. Python je dynamicky typovaný programovací jazyk. To znamená, že v programu nemusíme uvádět typ proměnné, interpret jazyka jej určí automaticky. Pokud provedeme přiřazení Aritmetické operaceS čísly můžeme provádět základní aritmetické operace, zápis je stejný jako na běžných kalkulačkách (
V programování nemůžeme vynechávat zápis násobení tak jako v matematice, tj. nemůžeme psát Priorita operací je stejná jako v matematice a stejně jako v matematice můžeme používat závorky:
Python dále nabízí vestavěné funkce jako Zkrácený zápisPři programování často aktualizujeme hodnotu proměnné tak, že k ní přičítáme určitou hodnotu, např.
Logické výrazy v Pythonu | Více | Logické výrazy v PythonuLogické výrazy Python vyhodnocuje na hodnoty
Operátory porovnáníZákladním logickým výrazem je porovnání mezi dvěma výrazy (např. porovnání hodnoty proměnné a konstanty). Operátory větší/menší zapisujeme podobně jako v matematice ( Příklady:
Pozor na rozdíl mezi přiřazením do proměnné (jedno rovnítko) a testem na rovnost (dvě rovnítka). Python obsahuje i další pokročilejší operátory. Mezi záludné patří Logické spojkyZákladní logické výrazy můžeme kombinovat pomocí klasických logických spojek (pro procvičení významu spojek využijte cvičení Binární křížovka:
Příklady:
Priority logických operátorů jsou sestupně:
Proměnné a výrazy: mix | Řízení výpočtu | Sekvence příkazů | Podmíněný příkaz (if) v Pythonu | Více | Podmíněný příkaz (if) v PythonuPodmíněné vykonání příkazu zapisujeme pomocí
Else větevMůžeme také říct, co se má stát, když podmínka splněna není. K tomu slouží příkaz
Jednotlivým variantám výpočtu říkáme větve a podmíněný příkaz můžeme také označovat jako větvení. Vícenásobné větveníPokud chceme testovat více možností, můžeme použít konstrukci
Vnořené větveníPodmíněné příkazy můžeme i zanořovat, tj. některá z větví můžem mít další větvení. U následných větví pak musíme zvýšit odsazení. Můžeme tedy psát například:
V některých případech je však jednodušší a přehlednější místo vnořeného kódu použít jednoduchý podmíněný příkaz s podmínkou využívající logické operace. Například druhý uvedený příklad můžeme zjednodušit takto:
Cyklus for v Pythonu | Více | Cyklus for v PythonuCykly při programování využíváme pro opakování skupiny příkazů. Cyklus Jednoduchý for cyklusZákladní využití cyklu
Řídící proměnnáV průběhu cyklu se mění hodnota řídící proměnné (ve výše uvedeném příkladu je to Pozor: V informatice často počítáme od nuly (nikoliv od jedničky jako normální lidi). Na to narážíme i zde:
For cyklus se dá využít nejen ve spojení s
Ukázky použitíTakto vypočítáme pomocí
Takto vypíšeme informaci o prvních
Cyklus while v Pythonu | Více | Cyklus while v PythonuCykly při programování využíváme pro opakování skupiny příkazů. Cyklus Základní použitíWhile cyklus se opakuje tak dlouho, dokud je splněna řídící podmínka cyklu (v následující ukázce jde o
Tímto cyklem vypisujeme mocniny dvou, dokud nepřekročí stovku:
Nula i nekonečno opakováníMůže se stát, že tělo while cyklu se neprovede ani jednou.
Může se stát, že while cyklus neskončí nikdy. Tento program vypisuje donekonečna jedničky:
Takový nekonečný cyklus většinou znamená chybu v programu. Typickou chybou je, že zapomeneme v těle cyklu měnit hodnotu proměnné, které vystupuje v podmínce cyklu. Vnořené cykly | Více | Vnořené cyklyK opakování příkazů slouží základní cyklus for a cyklus while. V těle cyklu mohou být nejen základní příkazy, ale třeba i další cyklus – ten nazýváme vnořený cyklus. Pro jeho použití nepotřebujeme žádný nový příkaz. Prostě jen cyklus zapíšeme (a odsadíme) uvnitř jiného cyklu. Vnořené cykly se ovšem vyplatí trénovat, jsou častým zdrojem problémů. Příklad:
Tento program vypisuje tuto tabulku:
Vnitřní cyklus (s řídící proměnnou
Funkce | Více | FunkceFunkce je pojmenovaný blok příkazů. Funkcím můžeme předávat argumenty. Funkce vrací návratovou hodnotu. Definice funkcePython nabízí celou řadu vestavěných funkcí, tedy takových, které jsou již připravené tvůrci jazyka. Příkladem je třeba funkce Vlastní funkci definujeme pomocí klíčového slova
Tímto jsme definovali funkci Volání funkceTím, že definujeme funkci, se ještě nevykoná. Aby se funkce vykonala, musíme ji zavolat. To uděláme tak, že napíšeme jméno funkce a do závorek předáme konkrétní argument:
Návratová hodnotaFunkce může vracet návratovou hodnotu pomocí klíčového slova
Takováto funkce sama o sobě nic neprovede, pouze vrátí hodnotu, se kterou můžeme dále pracovat.
Rekurze | Řízení výpočtu: mix | Datové typy a jejich využití | Přehled datových typů | Více | Přehled datových typůPřehled typůZákladní datové typy v Pythonu jsou:
Python nabízí i další typy, např. Měnitelnost a neměnitelnostTypy rozlišujeme podle toho, zda jejich hodnoty můžeme měnit:
Toto rozlišení je důležité například při využití slovníků – slovníky můžeme indexovat pouze neměnitelnými typy. PřetypováníNázvy typů jsou současně názvy vestavěných funkcí, které provedou přetypování. Typy proměnných jsou velice důležité. Ovlivňují například význam operátorů. Typický příklad je přetypování čísla na řetězec:
Řetězce v Pythonu | Více | Řetězce v PythonuZápis řetězcůŘetězce zapisujeme do uvozovek nebo apostrofů. V Pythonu 3 mohou řetězce obsahovat i znaky z diakritikou.
IndexováníK jednotlivým znakům řetězce přistupujeme pomocí indexování hranatými závorkami. Pozor, indexujeme od nuly. Python (na rozdíl od většiny jiných programovacích jazyků) umožňuje indexovat i od konce pomocí záporných čísel.
Pomocí dvojtečky můžeme indexovat podřetězec.
Neměnitelnost řetězcůŘetězce jsou v Python neměnitelný datový typ. To je jeden z výrazných rysů, ve kterých se liší od seznamů. Neměnitelnost znamená, že nemůžeme změnit dílčí písmeno v znaku. Musíme vytvořit nový řetězec, ve kterém bude příslušné písmeno změněno.
Operace s řetězciŘetězce můžeme sčítat (= zřetězit). Řetězce můžeme také násobit celým číslem (= opakovaně zřetězit). Mezi další užitečné operace patří zjištění délky (
Řetězce jsou objekty, které mají k dispozici řadu užitečných metod, které voláme pomocí tečkové notace. Příklady jsou převod na velká/malá písmena (
Operace se znakyPři práci s řetězci se občas hodí i operace pro manipulaci s jednotlivými znaky, především funkce
Pod „pořadové číslo“ se rozumí číslo v kódování Unicode. Pro základní programátorské úlohy stačí vědět, že písmena jsou v tomto kódování abecedně za sebou (bohužel to však platí jen pro písmena anglické abecedy). Takto tedy můžeme vypsat písmena anglické abecedy:
Seznamy v Pythonu | Více | Seznamy v PythonuSeznam ( Vytvoření seznamuSeznamy zapisujeme pomocí hranatých závorek:
Seznam můžeme také vytvořit pomocí klíčového slova
IndexováníK jednotlivým prvkům seznamu přistupujeme pomocí indexování hranatými závorkami. Pozor, indexujeme od nuly. Zápornými čísly můžeme indexovat odzadu:
Pomocí dvojtečky můžeme indexovat část seznamu:
Operace se seznamyUžitečné funkce se seznamy:
Seznamy a for cyklusPomocí
Alternativně můžeme procházet prvky seznamu takto (tento zápis je bližší tomu, jak procházíme seznamy v jiných programovacích jazycích):
Slovníky v Pythonu | Více | Slovníky v PythonuSlovník (dictionary, dict) udává mapování klíčů na hodnoty. Můžeme si třeba pamatovat počty kusů ovoce na skladě. Vytvoření slovníkuSlovník vytváříme v Pythonu pomocí složených závorek.
Přístup k položkámK položkám slovníku přistupujeme pomocí indexování hranatými závorkami. Podobně můžeme do slovníku položku přidat.
Pokud se pokusíme přistoupit k položce, která ve slovníku není, dostaneme chybu. Bezpečný přístup provedeme pomocí
Práce se slovníkyDalší užitečné funkce pro práci se slovníky:
Objekty v Pythonu | Více | Objekty v PythonuPython, stejně jako většina dalších moderních programovacích jazyků, podporuje objektově orientované programování. To už je poměrně pokročilé programátorské téma. Zde si shrneme jen některé základní pojmy. Objekt (object) je kolekce dat (proměnných) a metod (funkcí), které s těmito daty pracují. V Pythonu jsou téměř všechna data, se kterými se setkáme, objekty (čísla, řetězce, seznamy, ...). Objekty jsou speciální instance tříd (class). Třídu můžeme chápat jako obecný vzor, podle kterého se tvoří objekty. Příklad definice třídy:
A takto vytvoříme objekty (instance třídy) a použijeme je:
V tomto příkladě:
Práce se soubory | |
Práce s daty | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kódování informací | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Binární čisla | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tabulky | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Regulární výrazy | Více Regulární výrazyKdykoliv potřebujete v textu něco nahradit, najít nebo poupravit, můžete k tomu využít regulárních výrazů. Především u rozsáhlejších textů je jejich používání velice užitečné. Regulární výrazy široké uplatnění v mnoha programovacích jazycích (především skriptovacích jako Python, PHP, Perl, JavaScript). Můžete je ale použít i unixových příkazech (např. grep) nebo v textových editorech (např. Notepad++, Emacs). Regulární výrazy jsou velice bohaté. Shrneme především základní operátory. KvantifikátoryKvantifikátory vyznačují, kolikrát se má předcházející výraz opakovat. Například hvězdička v pe*s značí libovolný počet výskytů písmene e.
Hranice
Skupiny znaků
Alternativy a seskupováníVymezují více možností, případně seskupují znaky k sobě.
MetaznakyMetaznaky jsou speciální znaky, které používáme na konstrukci regulárních výrazů (např. Základní vyhledávání | Skupiny znaků | Kvantifikátory | Hranice | Nahrazování | Regulární výrazy: mix | |