Úlohy na procvičení
Funkce
Napište následující funkce. Zkuste doplnit i typové anotace parametrů a návratové hodnoty.
-
Napište funkci
compare(a, b), která vrací1proa > b,0proa == ba-1proa < b. -
Napište funkci
is_even(number), která přijme celé číslo jako argument a vracíTrue, je-li číslo sudé, aFalse, je-li liché. -
Nyní napište funkci
is_odd(number), která vracíTrue, je-li číslo liché aFalse, je-li sudé. Využijte funkciis_even. -
Napište funkci, která počítá ciferný součet čísla. Například ciferný součet čísla \(1234\) je \(10\) (protože \(1 + 2 + 3 + 4 = 10\)).
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
Účtenka
Řešte úlohu Účtenka v ReCodExu (středa, čtvrtek). Jejím cílem je vytvořit program, který načte seznam nakoupených položek a vypíše k nim přehlednou účtenku.
Nápověda: přesměrování vstupu ze souboru
Abyste vstup při každém spuštění nemuseli znovu opisovat nebo kopírovat, uložte si ho do textového souboru (např. priklad.txt) a spusťte program s přesměrováním vstupu. Ve vašem programu nic měnit nemusíte, dál bude používat input(). Jen se řádky místo z klávesnice budou postupně načítat ze souboru. Výstup programu se bude normálně vypisovat do terminálu.
Soubor priklad.txt uložte do stejné složky jako uctenka.py a příkaz spusťte v terminálu otevřeném v této složce. Přesný zápis příkazu se liší podle toho, jaký terminál používáte:
Windows – PowerShell (výchozí terminál ve Windows i ve VS Code):
Get-Content priklad.txt | python uctenka.pyWindows – příkazový řádek (z PowerShellu do něj můžete přejít zadáním příkazu cmd):
python uctenka.py < priklad.txtLinux / macOS:
python3 uctenka.py < priklad.txtUč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í. Hvězdičkou (⭐) je označena látka nad rámec předmětu Programování 1, kterou tedy teď nemusíte umět, ale někdy v budoucnu se vám může hodit.
- chápat funkci jako transformaci dat (vstupy -> výstupy)
- umět definovat funkci a její argumenty, umět zavolat funkci s konkrétními hodnotami argumentů
- umět zdokumentovat funkci (co dělá, význam argumentů, ideálně i typy argumentů a návratové hodnoty)
- ⭐ zapsat dokumentaci funkce jako dokumentační komentář (docstring)
- chápat, že funkce může mít vedlejší efekty (např. výpis na obrazovku)