Seznamy v Pythonu

Žáci ukládají data do seznamů, procházejí je cyklem, indexují prvky a volí seznam tam, kde nestačí jednotlivé proměnné. Nejde o tabulky ani o informační systémy.

Průvodce tématem Seznamy v Pythonu v předmětu Informatika pro II. ročník: 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 Seznamy v Pythonu (II. ročník) — 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.

Seznam v Pythonu je uspořádaná kolekce hodnot pod jedním jménem. Žák ho použije tam, kde by jednotlivé proměnné nestačily: neznámý počet údajů, stejný postup nad řadou prvků, potřeba přistoupit k n-té položce. Téma navazuje na proměnné, výrazy, větvení a cykly; nejde o tabulky, relace ani o informační systémy.

Program prochází seznam cyklem, čte a mění prvky podle indexu a přidává nebo odebírá položky podle zadání. Podle G-INF-02-004 a G-INF-02-007 žák v přehledném programu kombinuje opakování, větvení, proměnné a seznamy a volí datovou strukturu s ohledem na důsledek chyby (špatný index, prázdný seznam, záměna pořadí).

Cílem hodiny je, aby žák uměl seznam založit, naplnit, projít a zdůvodnit, proč je pro daná data vhodnější než několik samostatných proměnných. Složitější algoritmy nad seznamy, funkce s parametry a ladění navazují v dalších jednotkách plánu.

Předpoklady

Klíčové pojmy

Seznam jako kolekce
Hranaté závorky a čárky: více hodnot jednoho nebo různých typů pod jedním jménem; délka se zjišťuje funkcí len.
Index od nuly
První prvek má index 0, poslední len(seznam) − 1; záporný index počítá od konce (−1 je poslední prvek).
Čtení a zápis prvku
seznam[i] vrací prvek; seznam[i] = hodnota ho přepíše. Index mimo rozsah vyvolá chybu.
Průchod cyklem
for prvek in seznam prochází hodnoty; for i in range(len(seznam)) dává index, když je potřeba prvek i změnit nebo porovnat se sousedem.
Změna délky
append přidá prvek na konec, pop odebere (typicky poslední); prázdný seznam [] je platný stav, který program musí ošetřit.
Kdy seznam zvolit
Seznam dává smysl při neznámém nebo větším počtu stejnorodých údajů a při stejném postupu nad všemi; dvě tři pojmenované veličiny seznamem nenahrazujeme.

Časté miskoncepce

  • Častá chyba

    Žák napíše seznam[1] a čeká první známku / první město, protože „první je jednička“.

    Jak na to

    Na tabuli očíslujte konkrétní seznam 0, 1, 2… a nechte žáka ukázat prstíkem první prvek; hned poté spustit print(seznam[0]) a seznam[1] vedle sebe.

  • Častá chyba

    V cyklu for x in seznam žák uvnitř napíše x = nová_hodnota a čeká, že se seznam změní.

    Jak na to

    Ukázat totéží úlohu s range(len(seznam)) a přiřazením do seznam[i]; vytisknout seznam před i po obou variantách.

  • Častá chyba

    Žák založí a1, a2, a3, a4 pro čtyři vstupy a při pátém údaji program přepisuje nebo vzdá.

    Jak na to

    Zadat „neznámý počet čísel do konce vstupu“ a nechat doplnit append v cyklu; porovnat s verzí o pevném počtu proměnných.

  • Častá chyba

    Žák sáhne na seznam[len(seznam)] nebo na prázdný seznam[0] a neví, proč program spadne.

    Jak na to

    Nechat chybu proběhnout, přečíst IndexError, pak před přístupem testovat len a ukázat poslední platný index len − 1.

Jak učit

2–3 hodiny

  1. Evokace: zapište pět teplot do pěti proměnných a ptejte se, jak spočítat průměr, když jich bude dvacet.
  2. Jádro: založení seznamu, index 0, průchod for a změna prvku; jedna úloha na append ze vstupu.
  3. Reflexe: žáci řeknou, kdy by nechali samostatné proměnné a kdy musí být seznam — na konkrétním zadání z hodiny.

Nápady na aktivity

  • Seznam známek: načíst n hodnot, spočítat průměr a najít maximum průchodem, ne vestavěnými funkcemi jako jediným řešením.
  • Oprava „škrtnuté“ položky: nahradit zadanou hodnotu v seznamu nebo ji odstranit a vypsat seznam před a po změně.

Hodnocení

Žák napíše program, který načte neznámý počet čísel do seznamu, vypíše je v původním pořadí a spočítá součet cyklem.

Ústně zdůvodní volbu seznamu oproti jednotlivým proměnným a opraví přístup se špatným indexem.

Související témata

Zdroje

Co pro vás ScioBot připraví k tématu Seznamy 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 Seznamy 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

  • G-INF-02-004 žák vytvoří přehledný program pro vyřešení konkrétního problému s ohledem na jeho možné důsledky a svou odpovědnost za ně; používá opakování, větvení programu se složenými podmínkami, proměnné, seznamy, podprogramy s parametry a návratovými hodnotami; ve snaze o vyšší efektivitu navrhuje, řídí a hodnotí souběh procesů
  • G-INF-02-007 programovací koncepty – programovací jazyk; proměnné, datové typy a jejich vlastnosti, vstup a výstup dat; podprogramy s parametry a s návratovými hodnotami; větvení programu se složenými podmínkami, cykly, seznamy

Učíte Seznamy 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