Python: funkce a vnořené cykly

Žáci rozdělí úlohu na funkce s parametry a vnořené cykly, aby části programu šly znovu použít a přehledně řešily složitější postup.

Průvodce tématem Python: funkce a vnořené cykly v předmětu Informatika pro 8. 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 Python: funkce a vnořené cykly (8. 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 8. ročníku skládají v Pythonu větší úlohu z menších částí: pojmenovaná funkce s parametry řeší jeden opakovatelný krok, vnořené cykly `for` projdou dvojí opakování (řádky a sloupce, čísla a jejich násobky, mřížka znaků). Cílem není syntaxe sama o sobě, ale přehledný postup, který jde znovu použít a vysvětlit spolužákovi. Výstup INF-INF-002-ZV9-006 žádá rozdělení problému na řešitelné části a návrh algoritmu; INF-INF-002-ZV9-007 žádá přehledný program s opakováním, větvením a proměnnými — zde v textovém jazyce místo bloků.

Nejdřív žáci napíší krátkou funkci (např. výpis jednoho řádku nebo výpočet z parametrů) a ověří ji několika voláními. Pak totéž vloží do vnějšího cyklu, případně přidají vnitřní cyklus, až vznikne tabulka, rámeček nebo součet po skupinách. Učitel hlídá odsazení, pořadí `def` a volání a to, zda výsledek funkce opravdu vrací `return`, nebo ho jen vypíše.

Hodina končí porovnáním dvou verzí téhož úkolu: jeden dlouhý skript bez funkcí a tentýž postup s funkcí a vnořenými cykly. Žáci ukážou, kterou část by změnili, kdyby se změnil rozměr nebo vstup, a tím prokážou, že rozklad není formalita, ale úspora práce.

Předpoklady

Klíčové pojmy

Funkce s parametry
Pojmenovaný úsek kódu; při volání dostane konkrétní hodnoty parametrů a provede jeden srozumitelný úkol.
Volání funkce
Samotný zápis `def` tělo nespustí; program funkci použije až řádkem s názvem a závorkami (případně s argumenty).
Návratová hodnota (`return`)
`return` předá výsledek volajícímu kódu, aby šel uložit do proměnné nebo použít dál; `print` jen ukáže text na obrazovku.
Lokální proměnná
Proměnná vzniklá uvnitř funkce platí jen v jejím těle; vnější kód ji nevidí, dokud ji funkce nevrátí.
Vnořený cyklus
Vnitřní `for` doběhne celé jedno kolo pro každou hodnotu vnějšího cyklu (např. každý řádek a v něm každý sloupec).
Odsazení v Pythonu
Odsazení určuje, které příkazy patří do funkce a který cyklus je uvnitř kterého; stejná úroveň znamená po sobě, ne vnoření.
Znovupoužití postupu
Stejnou funkci lze volat s jinými argumenty; změna výpočtu se pak dělá na jednom místě, ne na pěti kopiích kódu.

Časté miskoncepce

  • Častá chyba

    Žák napíše `def vykresli(n):` s tělem, spustí soubor a čeká, že se něco vypíše — funkci nikde nezavolal.

    Jak na to

    U tabule nejdřív spusťte jen definici (nic se nestane), pak jeden řádek `vykresli(3)`. Žáci doplní volání do vlastního souboru a porovnají výstup.

  • Častá chyba

    Uvnitř funkce udělá `soucet = soucet + x` nebo `print(vysledek)` a venku čte starou proměnnou `soucet` / čeká, že `vysledek = moje_funkce()` něco obsahuje.

    Jak na to

    Úloha na dvě okna: verze s `print` a verze s `return` + přiřazením. Žák musí venku sečíst dva výsledky funkcí — bez `return` to nejde.

  • Častá chyba

    Dva cykly napíše pod sebou se stejným odsazením a čeká mřížku 3×3; dostane nejdřív tři vodorovné kroky a pak tři svislé, nebo jen jeden „řádek“.

    Jak na to

    Na papír tabulka 3×3: u každé buňky žáci zapíší dvojici (i, j). Pak totéž v editoru — vnitřní cyklus musí být o úroveň víc odsazený.

  • Častá chyba

    Parametr ve hlavičce považuje za hotové číslo z předchozí úlohy („n je vždy 5“) a do závorek při volání nic nedá, nebo volá `def scitej(a, b)`.

    Jak na to

    Tři volání stejné funkce s různými čísly na tabuli. Chybné `def ...` jako volání škrtněte; žáci opraví na `scitej(2, 3)` a vysvětlí rozdíl hlavičky a volání.

Jak učit

2–3 hodiny

  1. Evokace: z tabule smažte pět kopií stejného výpisu řádku a zeptejte se, co by se změnilo na jednom místě, kdyby řádků bylo osm.
  2. Jádro: společně napište funkci s parametrem a vnořený `for`; žáci ji znovu použijí na jiný rozměr a přidají podmínku uvnitř vnitřního cyklu.
  3. Reflexe: dvojice ukáže, kterou část dala do funkce, kde je vnější a vnitřní cyklus, a jedním voláním ověří jiný vstup.

Nápady na aktivity

  • Obdélník z hvězdiček: funkce `radek(sirka)` a vnější cyklus přes výšku; kontrola odsazení a volání, ne jen výsledek na obrazovce.
  • Malá násobilka nebo součet buněk tabulky: vnořené cykly počítají dvojice, funkce vrací jedno číslo (`return`), hlavní program čísla sčítá nebo vypisuje.

Hodnocení

Žák napíše funkci s alespoň jedním parametrem, zavolá ji vícekrát a ve vnořených cyklech sestaví mřížku nebo součet po skupinách (INF-INF-002-ZV9-006, INF-INF-002-ZV9-007).

Ústně ukáže rozdíl `print` a `return` a na vlastním kódu označí vnější a vnitřní cyklus.

Související témata

Zdroje

Co pro vás ScioBot připraví k tématu Python: funkce a vnořené cykly

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 Python: funkce a vnořené cykly 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 Python: funkce a vnořené cykly 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