Úlohy na procvičení
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
Keř a Strom
Cvičení na seznamy
Je dán seznam čí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.
Jaká je časová složitost vašich řešení (vzhledem k počtu čísel)? Umíte předchozí úkoly vyřešit efektivněji, pokud víte, ze všechna zadaná čísla leží od \(1\) do \(100\)?
Transpozice matice
Napište kód pro transpozici matice (matice je seznam seznamů čísel). Začněte pomocí for cyklů. Jestli jste odvážní, zkuste to zapsat jako list comprehension (přesněji dvě list comprehensions v sobě).
>>> matrix = [[1, 2, 3, 4], [4, 5, 6, 8]]
>>> transpose(matrix)
[[1, 4], [2, 5], [3, 6], [4, 8]]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í. 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.
- ⭐ použít list comprehensions pro vytváření nových seznamů z jiných seznamů