Ú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ý texttext
a znakchar
zjistí, jestlitext
obsahuje 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ý texttext
a znakchar
spočítá, kolikrát se znakchar
vyskytuje vtext
u.
Nepoužívejte metodustr.count
ze standardní knihovny.>>> count("banana", "n") 2
-
Napište funkci
find
, která pro zadaný texttext
a znakchar
zjistí, na jaké pozici se znakchar
poprvé vyskytuje vtext
u. Pokud sechar
vtext
u nevyskytuje, vraťte-1
.
Nepoužívejte metodustr.find
anistr.index
ze 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