Načítání stránky…

Typy hodnot v Pythonu

Připravit hodinu Všechny formáty

V Pythonu má každá hodnota typ, který určuje, jaké operace s ní lze provádět. Žáci rozlišují celá čísla, čísla typu float, řetězce a logické hodnoty. Při práci s proměnnými volí hodnotu podle toho, zda chtějí počítat, porovnávat, nebo pracovat s textem.

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 si můžete upravit. Předmět a ročník už jsou vyplněné — stačí si vybrat, co chcete vytvořit.

O tématu

Výraz 2 + 3 má výsledek 5, zatímco "2" + "3" spojí řetězce do textu "23". Žáci zkoušejí převody pomocí int(), float() a str() a sledují, kdy program ohlásí chybu. Poznatky využijí při práci s proměnnými a podmínkami; chování programu ověřují na různých vstupech a chyby opravují. Souvisí to s výstupy RVP Žák v blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné. a RVP Žák průběžně ověřuje správnost vytvářeného postupu, zkouší program, opravuje chyby, posoudí efektivitu postupu, programu.

Zvláštní pozornost zaslouží vstup z input(): i zápis čísla tato funkce vrací jako řetězec. Před výpočtem proto žáci ověří, zda vstup potřebují převést a zda má pro zvolený převod vhodný tvar.

Hierarchie základních typů v Pythonu
Zdroje obrázků
  1. Максим Пе · CC BY-SA 4.0

Předpoklady

Klíčové pojmy

Datový typ

Vlastnost hodnoty, která určuje, jaké operace s ní lze provádět. Typ hodnoty zjistíme funkcí type().

int a float

int je typ celých čísel, float čísel s pohyblivou řádovou čárkou, například 3.14. Operátor / při dělení těchto čísel vrací float; // zaokrouhluje podíl dolů a % vrací zbytek.

str

Řetězec je posloupnost znaků, například "42". Operátor + řetězce spojuje a * s celým číslem řetězec opakuje. Pro číselný výpočet je třeba číselný zápis v řetězci převést.

bool

Logická hodnota je True nebo False. Vzniká například porovnáním a lze ji použít v podmínce. Hodnota True se liší od řetězce "True".

Převod typu

Funkce int(), float() a str() vytvářejí hodnotu jiného typu, pokud to vstup umožňuje. bool() při převodu vyhodnocuje pravdivost hodnoty. Například int("3.5") skončí chybou, float("3.5") uspěje a int(3.9) odřízne desetinnou část 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 může nastat při převodu hodnoty nevhodného tvaru, například int("ahoj").

Vstup z input()

Funkce input() vrací řetězec. Má-li program se zadanou hodnotou počítat, musí její číselný zápis převést na číslo.

Nápady na aktivity

  1. Kvíz

    Typ hodnoty a výsledek výrazu

    Žáci vybírají typ hodnot v ukázkách Pythonu a určují, jak se změní výsledek sčítání nebo porovnání podle použitých typů.

  2. Odpovědi

    Rozpoznej typ hodnoty v Pythonu

    Žáci doplňují, zda je daná hodnota číslo, řetězec, nebo logická hodnota, a krátce zapisují výsledek jednoduchého výrazu.

  3. Rozřazování

    Třídění hodnot podle datového typu

    Žáci přetahují ukázky hodnot a výrazů do kategorií čísla, řetězce a logické hodnoty. U výrazů rozhodují podle výsledného typu.

  4. Doplňování

    Typy hodnot při práci se vstupem

    Žáci doplňují do krátkých ukázek kódu, jaký typ má vstup a jak se změní po převodu na číslo. Sledují, proč se textový vstup a číselná hodnota chovají odlišně.

  5. Rozhodování

    Co Python porovnává a sčítá?

    Žáci rozhodují, zda lze ve vybraných ukázkách hodnoty porovnat nebo sečíst, a volí výsledek podle jejich typu.

  6. Logický řetěz

    Od vstupu k výsledku v Pythonu

    Žáci skládají navazující kartičky, které propojují textový vstup, jeho převod na číslo a následný výpočet nebo porovnání.

Časté miskoncepce

  • Častá chyba

    Žák napíše soucet = input("a") + input("b") a po zadání 3 a 4 očekává výsledek 7. Program vytvoří řetězec "34".

    Jak na to

    Nechte žáky zjistit typ obou vstupů pomocí type(). Pak vstupy před sčítáním převeďte pomocí int() nebo float() a výsledky porovnejte.

  • Častá chyba

    Žák po přiřazení vek = 15 očekává, že podmínka if vek == "15" bude pravdivá.

    Jak na to

    Porovnejte type(vek) a type("15"). Číslo 15 a řetězec "15" se nerovnají; před porovnáním je třeba použít hodnoty odpovídajících typů.

  • Častá chyba

    Žák použije int("3,14") nebo zapíše desetinné číslo s čárkou a očekává číselnou hodnotu 3,14.

    Jak na to

    V číselném zápisu Python používá desetinnou tečku. Textový vstup s desetinnou čárkou lze před převodem pomocí float() upravit nahrazením čárky tečkou.

  • Častá chyba

    Žák očekává, že bool("False") nebo bool("0") vrátí False, protože tak čte obsah řetězce.

    Jak na to

    Porovnejte bool(""), bool("False"), bool(0) a bool("0"). Prázdný řetězec a nula se vyhodnotí jako False, oba neprázdné řetězce jako True.

Úkoly pro žáky

  • U krátkých skriptů se sčítáním vstupů, porovnáním věku a výpočtem průměru žáci určují typy hodnot, předpovídají chování programu a opravují potřebné převody.

  • Karty s hodnotami 42, 3.14, "42", True a "True" žáci přiřazují k typům, které vrací type(). U každé hodnoty posoudí, která z nabízených operací dává smysl a která vyvolá chybu.

Hodnocení

Žák u zadaného úryvku určí typy hodnot, předpoví výstup nebo chybu a případnou chybu opraví vhodným převodem.

Žák v programu načte dvě číselné hodnoty, vypočítá jejich součet, spojí jejich zápisy jako text a pomocí if porovná jejich číselné hodnoty. Výsledky ověří na různých vstupech.

Související témata

Očekávané výstupy

  • RVP · 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é.
  • RVP · INF-INF-002-ZV9-008 Průběžně ověřuje správnost vytvářeného postupu, zkouší program, opravuje chyby, posoudí efektivitu postupu, programu.

Zdroje

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

Prozkoumejte další témata