Úlohy na procvičení
Refaktoring
Soubor refaktoring.py obsahuje kód funkce, která provádí několik operací.
Vaším úkolem je refaktorovat (upravit) tento kód tak, aby byl lépe čitelný a organizovaný.
- Vhodně pojmenujte proměnné.
- Rozdělte program na funkce, abyste dodrželi princip jedné odpovědnosti (funkce by měla dělat jen jednu věc).
- Doplňte type hints.
- Doplňte vhodný dokumentační komentář.
Dále zobecněte kód tak, aby pracoval s libovolnou velikostí vstupního argumentu
Funkce pro textové řetězce
-
Napište funkci
contains, která pro zadaný texttexta znakcharzjistí, jestlitextobsahuje znakchar.
Ručně napište cyklus, který bude procházet přes znaky textu, nepoužívejte operátorin(pokud ho znáte).>>> contains("banana", "n") True >>> contains("banana", "z") False -
Napište funkci
count, která pro zadaný texttexta znakcharspočítá, kolikrát se znakcharvyskytuje vtextu.
Nepoužívejte metodustr.countze standardní knihovny.>>> count("banana", "n") 2 -
Napište funkci
find, která pro zadaný texttexta znakcharzjistí, na jaké pozici se znakcharpoprvé vyskytuje vtextu. Pokud secharvtextu nevyskytuje, vraťte-1.
Nepoužívejte metodustr.findanistr.indexze standardní knihovny.>>> find("banana", "b") 0 >>> find("banana", "n") 2 >>> find("banana", "z") -1
Cvičení na seznamy
Je dána posloupnost čísel…
- zjistěte, jestli jsou všechna navzájem různá.
- vypište všechna opakující se čísla (ale každé jen jednou).
- najděte dvojici s co nejmenším rozdílem.
Umíte předchozí úkoly vyřešit efektivněji, pokud víte, ze všechna zadaná čísla leží od \(1\) do \(100\)?
Bludiště
V souboru maze_broken.py je kód jednoduché hry, ve které se hráč pohybuje bludištěm. Kód ale obsahuje celou řadu chyb. Najděte je a opravte.
Učební výstupy
Učební výstupy podávají zhuštěný souhrn základních konceptů a dovedností, které byste měli umět vysvětlit a/nebo použít po každém cvičení.
- chápat funkci jako nástroj pro pojmenování části výpočtu (dekompozici kódu)
- umět nahradit opakující se části kódu funkci
- umět pracovat s kódem, který napsal někdo jiný (případně umělá inteligence) – spustit ho, ladit ho, hledat v něm chyby