Typy hodnot v Pythonu

Žáci v Pythonu rozlišují čísla, řetězce a logické hodnoty a volí vhodný typ podle toho, co chtějí uložit, porovnat nebo vypočítat.

Průvodce tématem Typy hodnot 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 Typy hodnot 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 v textovém Pythonu prohlubují práci s datovými typy: rozlišují celá a desetinná čísla, řetězce a logické hodnoty. Učí se, že typ hodnoty ovlivňuje, jaké operace s ní lze provádět a jaký bude výsledek. Navazují na proměnné, výrazy, podmínky a funkce; cílem není vyjmenovat všechny vestavěné typy, ale umět zvolit typ, který odpovídá zamýšlenému použití.

Žáci zkoumají, jak se liší operace se čísly a řetězci: například 2 + 3 dá 5, zatímco "2" + "3" vytvoří text "23". Sledují, jak převody pomocí int(), float(), str() a bool() mění hodnotu nebo její použití, a učí se rozpoznat a opravit chybu TypeError. Tím procvičují práci s proměnnými a větvením podle INF-INF-002-ZV9-007 a průběžně ověřují a opravují svůj program podle INF-INF-002-ZV9-008.

Slovníky a složitější struktury patří do navazujícího učiva; zde se žáci soustředí na základní typy hodnot a jejich volbu před výpočtem, porovnáním nebo výpisem.

Předpoklady

  • Proměnné, přiřazení a aritmetické i porovnávací výrazy v Pythonu
  • Podmíněný příkaz if a porovnávání hodnot
  • Funkce a vnořené cykly — předávání hodnot do výpočtu

Klíčové pojmy

Datový typ
Určuje, jaký druh hodnoty proměnná uchovává a jaké operace s ní dávají smysl. Typ hodnoty zjistíme funkcí type().
int a float
int označuje celé číslo a float číslo s desetinnou částí. Dělení / vrací float; // provádí celočíselné dělení a % vrací zbytek po dělení.
undefined
Řetězec je posloupnost znaků zapsaná v uvozovkách. Operátor + spojuje řetězce a * s celým číslem řetězec opakuje; text je třeba před číselným výpočtem převést na číslo.
undefined
Logická hodnota může být True nebo False. Vzniká například porovnáním či použitím logických spojek a používá se při větvení programu; True není totéž co text "True".
Převod typu
Funkce int(), float(), str() a bool() převádějí hodnotu na jiný typ, pokud je takový převod možný. int("3.5") skončí chybou, float("3.5") uspěje a int(3.9) desetinnou část odřízne směrem k nule.
TypeError a ValueError
TypeError může nastat při operaci s neslučitelnými typy, například při sčítání čísla a řetězce. ValueError nastane, když typ převádět lze, ale daná hodnota nevyhovuje, například int("ahoj").
Vstup z input()
Funkce input() vždy vrací řetězec. Chceme-li s odpovědí počítat, převedeme ji na číslo; bez převodu se texty spojují místo toho, aby se čísla sčítala.

Časté miskoncepce

  • Častá chyba

    Žák napíše soucet = input("a") + input("b") a čeká výsledek 7, když zadá 3 a 4; program spojí texty na "34".

    Jak na to

    Nechte žáky vypsat oba vstupy i jejich typ pomocí type(). Potom před sčítáním přidejte int() nebo float() a porovnejte výsledky.

  • Častá chyba

    Žák po přiřazení vek = 15 napíše if vek == "15" a čeká, že se podmínka vyhodnotí jako pravdivá.

    Jak na to

    Vypište type(vek) a type("15") a ukažte, že celé číslo 15 se nerovná řetězci "15". Před porovnáním sjednoťte typ hodnot.

  • Častá chyba

    Žák použije int("3,14") nebo v kódu zapíše desetinné číslo s čárkou a čeká, že Python přijme český zápis.

    Jak na to

    Ukažte rozdíl mezi českým zápisem desetinného čísla a zápisem v Pythonu: v číselném literálu se používá tečka. U vstupu s desetinnou čárkou ji lze před převodem nahradit tečkou.

  • Častá chyba

    Žák čeká, že bool("False") nebo bool("0") bude False, protože text vypadá jako nepravdivá hodnota.

    Jak na to

    Porovnejte bool("") , bool("False"), bool(0) a bool("0"): prázdný řetězec a nula jsou nepravdivé, ale každý neprázdný řetězec je pravdivý.

Jak učit

2–3 hodiny

  1. Evokace: Ukažte výpisy 2 + 3 a "2" + "3" a zeptejte se, proč je jednou výsledkem 5 a podruhé text "23".
  2. Uvědomění: Společně roztřiďte hodnoty podle typů int, float, str a bool, převeďte vstupy z input() a opravte TypeError v krátkém skriptu s podmínkou if.
  3. Reflexe: Žáci u proměnných ve vlastním programu určí typ a stručně zdůvodní, proč ho zvolili.

Nápady na aktivity

  • Stanoviště „Oprav TypeError“: tři krátké skripty se sčítáním vstupů, porovnáním věku a výpočtem průměru. U každého žáci určí typy hodnot a doplní potřebný převod.
  • Karty s hodnotami 42, 3.14, "42", True a "True": žáci je přiřadí k výsledku funkce type() a navrhnou pro každou smysluplnou operaci i operaci, která pro daný typ nefunguje.

Hodnocení

Žák u zadaného úryvku určí typ každé proměnné, předpoví výstup nebo chybu a opraví program vhodným převodem typu.

Krátký úkol: načti dvě čísla, vypočítej jejich součet, spoj jejich zápisy jako text a použij podmínku if založenou na porovnání čísel (INF-INF-002-ZV9-007, INF-INF-002-ZV9-008).

Zdroje

Co pro vás ScioBot připraví k tématu Typy hodnot 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 Typy hodnot v Pythonu 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-007 V blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné.
  • INF-INF-002-ZV9-008 Průběžně ověřuje správnost vytvářeného postupu, zkouší program, opravuje chyby, posoudí efektivitu postupu, programu.

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