Opakování v Pythonu pomocí cyklu for

Žáci v Pythonu řídí opakování cyklem for, porovnávají ho s blokovým opakováním a ověřují, kolikrát se tělo cyklu provede.

Průvodce tématem Opakování v Pythonu pomocí cyklu for v předmětu Informatika pro 7. 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 Opakování v Pythonu pomocí cyklu for (7. 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 zapisují opakování v Pythonu cyklem for a určují, kolikrát se jeho tělo provede. Navazují na blokové opakování: záměr „udělej totéž Nkrát“ teď vyjádří příkazem, odsazením a rozsahem hodnot. Téma přispívá k výstupům INF-INF-002-ZV9-007 a INF-INF-002-ZV9-005: žáci sestavují přehledný program, čtou jeho kroky a vysvětlují, co algoritmus řeší a kolikrát se tělo cyklu spustí.

Porovnání s blokovým cyklem pomáhá přenést představu o opakování, nikoli překládat jednotlivá kliknutí do syntaxe. U konkrétní úlohy, například tisku řady nebo opakovaného výpočtu, žák určí řídicí proměnnou, rozsah a příkazy v těle cyklu. Počet provedení si nejprve předpoví a algoritmus si může projít krok za krokem; pak svůj odhad porovná s výstupem programu.

Téma se zaměřuje na řízení výpočtu jedním cyklem for. Vnořené cykly, funkce a podmínka if patří k pozdějším tématům plánu. Žák zde mění rozsah, vysvětluje, proč se tělo provedlo právě tolikrát, a hledá příčinu, když program provede jiný počet opakování, než zamýšlel.

Předpoklady

  • Proměnné, přiřazení a jednoduché výrazy v Pythonu, aby žák mohl v těle cyklu počítat a ukládat mezivýsledek.
  • Blokové cykly s proměnnými: představa opakování, čítače a změny hodnoty mezi opakováními.
  • Čtení algoritmu po krocích a určování, jaký problém daný postup řeší.

Klíčové pojmy

Cyklus for
Příkaz, který provede tělo jednou pro každou hodnotu v daném rozsahu. Žák ho může číst jako „pro každou hodnotu z … proveď …“.
Tělo cyklu
Odsazené příkazy pod for, které se provedou při každém opakování. Python vyžaduje správné odsazení; bez něj program ohlásí chybu.
range a počet opakování
range(n) poskytuje n hodnot: od 0 do n−1. Proto se tělo provede nkrát. Počet opakování určuje počet hodnot v rozsahu, ne samotné poslední číslo.
Řídicí proměnná
Jméno za for, často i, které při každém opakování nabývá další hodnoty z rozsahu. Lze ho použít v těle cyklu; není nutné ho vypisovat, pokud úloha jen opakuje stejný výpočet.
Porovnání s blokovým opakováním
Blok „opakuj Nkrát“ a for s range(N) vyjadřují stejný záměr. V Pythonu N označuje počet hodnot, které range poskytne, ne poslední vypsané číslo.
Řízení výpočtu
Změnou rozsahu a příkazů v těle žák určuje, kolikrát a s jakými hodnotami se výpočet provede, aniž by příkazy kopíroval pod sebe.
Kontrola počtu provedení
Žák před spuštěním odhadne počet opakování a výstup a po spuštění je porovná. Případný rozdíl hledá v rozsahu, odsazení nebo v příkazech uvnitř těla.

Časté miskoncepce

  • Častá chyba

    Žák napíše for i in range(5) a čeká, že se vytisknou čísla 1 až 5 nebo že při posledním opakování bude i rovno 5.

    Jak na to

    Vypište společně hodnoty, které range(5) skutečně poskytne (0, 1, 2, 3, 4). Žáci nejprve projdou pět opakování krok za krokem a teprve potom spustí print(i).

  • Častá chyba

    Žák očekává, že příkaz na stejné úrovni odsazení jako for patří do cyklu. Pokud odsazení těla chybí, Python ohlásí chybu; správně zapsaný příkaz za cyklem se naopak provede jednou.

    Jak na to

    Porovnejte program se správně odsazeným tělem s programem, ve kterém je platný příkaz umístěný až za cyklem. Žáci určí, kolikrát se příkaz provede, a upraví jeho umístění.

  • Častá chyba

    Žák zamění range(n) za „opakuj od 1 do n“ a při sčítání nebo odpočtu provede o jedno opakování více či méně, než zamýšlel.

    Jak na to

    Použijte úlohu „sečti n čísel z klávesnice“ nebo „vytiskni n hvězdiček“. Žáci předpoví počet vstupů nebo řádků, ověří ho spuštěním a podle potřeby upraví argument range.

  • Častá chyba

    Žák si myslí, že for funguje jinak než blok „opakuj Nkrát“, a místo cyklu zapisuje stejný příkaz opakovaně.

    Jak na to

    Porovnejte dříve vytvořený blokový program s jeho zápisem v Pythonu. Žáci spočítají počet opakování v obou programech a vysvětlí, jaký problém řeší.

Jak učit

2–3 hodiny

  1. Evokace: Ukažte blok „opakuj 4krát“ a zeptejte se, kolikrát se tělo provede a jak by se záměr dal vyjádřit slovy „pro každou hodnotu…“.
  2. Uvědomění: Společně zapište for s range a odsazeným tělem cyklu. Žáci na papíře sledují hodnoty řídicí proměnné, pak mění číslo v range a ověřují počet opakování.
  3. Reflexe: Žáci u dvou krátkých programů s odlišným odsazením nebo rozsahem určí počet provedení těla a vysvětlí, jaký problém program řeší.

Nápady na aktivity

  • Párové stopování: Jeden žák čte for i in range(…), druhý zapisuje na papír hodnoty i a výstup; potom si role vymění u programu s jiným rozsahem.
  • Řízení opakování: Žáci upraví range u stejného těla cyklu, které tiskne hvězdičku nebo přičítá hodnotu k součtu, aby vznikl zadaný počet řádků nebo sčítanců.

Hodnocení

Žák u zadaného cyklu for s range ústně nebo písemně určí hodnoty řídicí proměnné a počet provedení těla (INF-INF-002-ZV9-005).

Žák napíše krátký přehledný program s jedním cyklem for, který zadaný výpočet správně opakuje, a opraví chybu v odsazení nebo v rozsahu (INF-INF-002-ZV9-007).

Zdroje

Co pro vás ScioBot připraví k tématu Opakování v Pythonu pomocí cyklu for

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 Opakování v Pythonu pomocí cyklu for jedním klikem.

Základní materiály

Interaktivní aktivity 15

K tisku a rozstříhání 8

Hry pro celou třídu 4

Očekávané výstupy

  • INF-INF-002-ZV9-005 Po přečtení jednotlivých kroků algoritmu vysvětlí celý postup a určí problém, který je daným algoritmem ř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é.

Téma v dalších ročnících: 8. třída

Učíte Opakování v Pythonu pomocí cyklu for 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