Slovníky  10. listopadu 2020

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

0.

Napiš funkci, která pro argumentem zadané číslo n vytvoří a vrátí slovník, kde jako klíče budou čísla od jedné do n a jako hodnoty k nim jejich druhé mocniny. Například:

>>> mocniny(4)
{1: 1, 2: 4, 3: 9, 4: 16}
1.

Napiš funkci, která sečte a vrátí sumu všech klíčů a sumu všech hodnot ve slovníku, který dostane jako argument. K vyzkoušení můžeš použít slovník z minulé úlohy. Například:

>>> soucet_klicu_a_hodnot(mocniny(4))
(10, 30)
2.

Napiš funkci, která jako argument dostane řetězec a vrátí slovník, ve kterém budou jako klíče jednotlivé znaky ze zadaného řetězce a jako hodnoty počty výskytů těchto znaků v řetězci. Například:

>>> pocet_znaku("hello world")
{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
3.

Napiš funkci, která vypíše obsah slovníku (klíče a k nim náležící hodnoty) na jednotlivé řádky.

Funkci, která něco vypisuje, je vhodné pojmenovat speciálně, zde třeba vypis_slovnik, aby bylo jasné, že jen vypisuje a nic nevrací. Například:

>>> vypis_slovnik(mocniny(4))
Klíč 1, hodnota 1
Klíč 2, hodnota 4
Klíč 3, hodnota 9
Klíč 4, hodnota 16
4.

Napište program, který přeloží zadaný řetězec do morseovy abecedy, tečku nahraďte slovem STOP, ostatní interpunkci ignorujte, slova oddělujte svislítkem '|'. Morseovu abecedu najdete níže (proč jsme ji pro vás připravili takto?):

      {'0' : '-----', 'A' : '.-'   , 'K' : '-.-'  , 'U' : '..-'  ,
       '1' : '.----', 'B' : '-...' , 'L' : '.-..' , 'V' : '...-' ,
       '2' : '..---', 'C' : '-.-.' , 'M' : '--'   , 'W' : '.--'  ,
       '3' : '...--', 'D' : '-..'  , 'N' : '-.'   , 'X' : '-..-' ,
       '4' : '....-', 'E' : '.'    , 'O' : '---'  , 'Y' : '-.--' ,
       '5' : '.....', 'F' : '..-.' , 'P' : '.--.' , 'Z' : '--..' ,
       '6' : '-....', 'G' : '--.'  , 'Q' : '--.-' ,
       '7' : '--...', 'H' : '....' , 'R' : '.-.'  ,
       '8' : '---..', 'I' : '..'   , 'S' : '...'  ,
       '9' : '----.', 'J' : '.---' , 'T' : '-'    }
5.

Úkolem je vytvořit známou skautskou hru „Kdo? S kým? Co dělali?“. Hra se hráče zeptá postupně na různé otázky, například „Kdo?“, „S kým?“, „Co dělali?“, „Kde?“, „Kdy?“, a nakonec „Proč?“, s tím, že mu umožní na jednu otázku odpovědět vícekrát a všechny odpovědi si uloží. Na závěr pak hra z každé sady odpovědí vybere náhodně jednu odpověď a z takto vybraných odpovědí složí větu, kterou vypíše uživateli. Seznam otázek by mělo být možné změnit v kódu na jednom místě bez zásahu do logiky programu.