Slovníky a struktury v Pythonu

Žáci použijí slovníky k uložení párových dat, rozloží úlohu na části a napíšou přehledný program, který se záznamy pracuje.

Průvodce tématem Slovníky a struktury v Pythonu v předmětu Informatika pro 9. třídu: co mají žáci zvládnout, na co navázat a kde nejčastěji chybují. K tomu příprava na hodinu, pracovní list nebo písemka, které ScioBot připraví na jedno kliknutí přesně pro tento ročník.

Připravit hodinu Všechny formáty

Klikněte a tvořte

Získejte přípravu zdarma

Vyberte formát. Jedním kliknutím otevřete tvorbu na téma Slovníky a struktury v Pythonu (9. třída) — ScioBot ho připraví za vás.

Připravit hodinu

Další formáty na jedno kliknutí

Téma i ročník jsou už vyplněné. Nic nepíšete — rovnou tvoříte.

Žáci v 9. ročníku používají slovník v Pythonu jako strukturu pro párová data: ke klíči přiřadí hodnotu a podle klíče záznam najdou, změní nebo doplní. Navazují na datové typy, cyklus a podmínku a skládají je do přehledného programu (INF-INF-002-ZV9-007).

Úlohy typu evidence známek, kontaktů nebo skóre vedou k rozkladu na části: načtení nebo zápis záznamu, úprava hodnoty, výpis a jednoduchá kontrola chybějícího klíče (INF-INF-002-ZV9-006). Slovník se hodí tam, kde nestačí pořadí v seznamu, ale potřebujeme pojmenovaný přístup.

Cílem není úplný výčet metod, ale jistota v zápisu složených závorek, v práci s klíčem a v tom, že jeden program má čitelné části (funkce nebo jasně oddělené bloky), které se záznamy pracují.

Předpoklady

Klíčové pojmy

Slovník (dict)
Kolekce dvojic klíč–hodnota zapsaná ve složených závorkách, například {"Anna": 2, "Petr": 1}.
Klíč
Jednoznačné jméno záznamu (často řetězec); podle něj se hodnota vyhledá, ne podle pořadí jako u seznamu.
Hodnota
Údaj uložený u klíče; může to být číslo, text, seznam i další slovník.
Přístup přes hranaté závorky
Zápis slovnik["Anna"] čte nebo nastavuje hodnotu u daného klíče; nový klíč stejným zápisem přidá záznam.
Jedinečnost klíče
Stejný klíč ve slovníku zůstane jen jednou; druhé přiřazení přepíše předchozí hodnotu.
Rozklad úlohy
Evidence se rozdělí na části (přidat, změnit, vypsat, ověřit klíč), které se skládají do přehledného programu (INF-INF-002-ZV9-006).
Kontrola klíče
Před čtením se ověří, zda klíč ve slovníku je (operátor in), aby program nespadl na chybějícím záznamu.

Časté miskoncepce

  • Častá chyba

    Žák napíše znamky.append({"Anna": 1}) nebo znamky.add(...), protože slovník bere jako seznam, který se „přilepí“ na konec.

    Jak na to

    U tabule vedle sebe ukažte seznam.append a slovník["Anna"] = 1; žák přepíše jeden svůj řádek na přiřazení ke klíči a program spustí.

  • Častá chyba

    U slovníku kontakty = {"Anna": "123", "Petr": "456"} žák sahá na kontakty[0] a čeká první záznam.

    Jak na to

    Nechte ho vypsat kontakty.keys() a pak kontakty["Anna"]; slovo „nultý“ škrtněte a nahraďte jménem klíče v úloze.

  • Častá chyba

    Žák dvakrát přiřadí stejný klíč (znamky["Anna"] = 1 a pak = 3) a hledá, „kam se poděla jednička“.

    Jak na to

    Vypíšte slovník po každém přiřazení; ukažte, že klíč Anna je pořád jeden a hodnota se přepsala — pro historii známek použijte seznam hodnot u jednoho klíče.

  • Častá chyba

    Žák píše if "1" in znamky nebo if "Anna" in znamky.values() omylem jako if "Anna" in znamky, když hledá známku, ne jméno.

    Jak na to

    Na konkrétním slovníku zeptejte: hledáme jméno, nebo údaj? Společně napište in na klíče a porovnání znamky[jmeno] == hledana_hodnota.

Jak učit

2–3 hodiny

  1. Evokace: z papírové tabulky jméno–údaj nechte žáky říct, proč nestačí jen seznam čísel bez jmen.
  2. Jádro: společně založte slovník, přidejte a změňte záznam, ošetřete chybějící klíč a rozdělte program na části (INF-INF-002-ZV9-007).
  3. Reflexe: žáci na jednom svém programu ukážou, kde je klíč, kde hodnota a která část kódu co dělá.

Nápady na aktivity

  • Minievidence třídy: slovník jméno → počet bodů; žáci doplní zápis, úpravu a výpis seřazený podle jmen klíčů.
  • Rozložená úloha „sklad“: jeden žák navrhne funkce/části (přidat kus, ubrat, vypsat stav), druhý je napojí na jeden slovník zboží → počet.

Hodnocení

Žák založí slovník, přidá a změní alespoň dva záznamy a vypíše je cyklem přes klíče bez použití číselného indexu.

Žák rozdělí úlohu evidence na části a v kódu je oddělí tak, že umí ukázat, která část přidává a která jen čte (INF-INF-002-ZV9-006).

Související témata

Zdroje

Co pro vás ScioBot připraví k tématu Slovníky a struktury v Pythonu

Interaktivní aktivity, které žáci spustí na tabletu či tabuli, tisknutelné kartičky a hry pro celou třídu – každý formát na téma Slovníky a struktury v Pythonu jedním klikem.

Základní materiály

Interaktivní aktivity 14

K tisku a rozstříhání 8

Hry pro celou třídu 4

Očekávané výstupy

  • INF-INF-002-ZV9-006 Rozdělí problém na jednotlivě řešitelné části a navrhne postupy a algoritmy pro jeho řešení.
  • INF-INF-002-ZV9-007 V blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné.

Učíte Slovníky a struktury v Pythonu trochu jinak?

Popište ScioBotu vlastními slovy, co s žáky chcete zvládnout a kolik máte času. Materiál přizpůsobí vašemu ŠVP, třídě i žákům se speciálními vzdělávacími potřebami.

Napsat ScioBotu

Související témata