📦 Proměnné, datové typy, vstup a výstup

Krabičky

O čem to je

Program si potřebuje pamatovat věci: jméno uživatele, počet bodů ve hře, cenu nákupu. Pamatuje si je v proměnných. Představ si proměnnou jako krabičku se štítkem. Na štítku je jméno, uvnitř hodnota.

V této části se naučíš první skutečné příkazy Pythonu: uložit hodnotu, spočítat něco, vypsat výsledek a načíst, co napíše uživatel. Z těchto kousků se skládá každý program.

Nové pojmy

ProměnnáPojmenované místo v paměti, kam program uloží hodnotu. Hodnotu můžeš kdykoli přečíst nebo nahradit novou.body = 10 vytvoří proměnnou body s hodnotou 10.
Přiřazení =Uloží hodnotu zprava do proměnné vlevo. Není to rovnost z matematiky, čti ho „ulož do“.body = body + 5 vezme starou hodnotu 10, přičte 5 a uloží 15.
Datový typDruh hodnoty. Určuje, co s hodnotou jde dělat. Čísla jde dělit, text ne.10 je celé číslo, "10" je text.
Funkce print() a input()print() vypíše hodnotu na obrazovku (výstup). input() počká, až uživatel něco napíše a stiskne Enter, a vrátí to jako text (vstup).jmeno = input("Jak se jmenuješ? ")

Čtyři základní typy

TypČeskyPříkladPoznámka
intcelé číslo42, -7libovolně velké
floatdesetinné číslo3.14, 2.0v kódu desetinná tečka
strřetězec (text)"ahoj", '42'v uvozovkách
boolpravdivostní hodnotaTrue, Falsevelké první písmeno

Typ hodnoty zjistíš funkcí type(). Například type(3.0) vrátí float.

Počítání

OperátorVýznamPříkladVýsledek
+ -sčítání, odčítání7 - 25
*násobení7 * 214
/dělení (vždy float)7 / 23.5
//celočíselné dělení7 // 23
%zbytek po dělení (modulo)7 % 21
**mocnina2 ** 38

Platí přednost jako v matematice: nejdřív mocnina, pak násobení a dělení, nakonec sčítání a odčítání. Závorky mají přednost před vším.

Načtení čísla od uživatele

vek = input("Kolik ti je? ") načte text, třeba "16".
vek = int(vek) převede text na celé číslo 16. Převodu se říká přetypování.
print("Za rok ti bude", vek + 1) vypíše Za rok ti bude 17.
Co vypíše program a = 5, a = a * 2, a = a - 3, print(a)?
Postupně: a = 5 → a = 10 → a = 7. Vypíše 7. Přiřazení vždy přepíše starou hodnotu novou.
Uživatel zadá 4. Co vypíše x = input() a pak print(x * 3)?
input() vrací text "4". Násobit text číslem znamená opakovat ho: vypíše 444. Kdybys chtěl 12, musíš napsat x = int(input()).
✗cislo = input() a pak print(cislo + 1) vypíše o jedna větší číslo.
✓cislo = int(input()) a pak print(cislo + 1).

input() vrací vždy řetězec. Řetězec a číslo nejde sečíst, Python ohlásí chybu TypeError.

Proměnná je pojmenovaná krabička na hodnotu, = do ní ukládá. Základní typy jsou int, float, str a bool. input() vrací vždy text, číslo z něj uděláš pomocí int() nebo float().

Program krok za krokem

O čem to je

Pokladna v obchodě načte cenu, vynásobí ji počtem kusů a vypíše, kolik platíš. Je to malý program: vstup → výpočet → výstup. Takhle vypadá skoro každý program, který napíšeš v prvních hodinách programování.

Postavíš si ho krok za krokem a u každého řádku uvidíš, co se děje v paměti počítače.

Nové pojmy

ProměnnáJméno, pod kterým si program pamatuje hodnotu. Jméno začíná písmenem nebo _, nesmí obsahovat mezery a záleží v něm na velikosti písmen.cena, pocet_kusu, Cena (to je jiná proměnná než cena).
VýrazKus kódu, který Python spočítá na jednu hodnotu.cena * pocet je výraz. Když cena = 25 a počet = 3, má hodnotu 75.
Datový typDruh hodnoty: int celé číslo, float desetinné číslo, str text, bool pravda/nepravda (True/False).25 je int, 25.0 je float, "25" je str.
PřetypováníPřevod hodnoty na jiný typ funkcí int(), float(), str() nebo bool().int("25") je číslo 25, str(25) je text "25", int(3.9) je 3 (desetinná část se usekne, nezaokrouhluje).
f-řetězecText s f před uvozovkami. Do složených závorek {} vložíš proměnnou nebo výraz a Python dosadí jeho hodnotu.f"Platíš {cena} Kč" vypíše Platíš 75 Kč.

Pokladna

  • cena = float(input("Cena za kus: "))
  • pocet = int(input("Počet kusů: "))
  • celkem = cena * pocet
  • print(f"Celkem zaplatíš {celkem} Kč")

Uživatel zadá cenu 12.5 a počet 4. Sleduj, co je v paměti po každém řádku:

Řádekcenapocetcelkem
112.5––
212.54–
312.5450.0
412.5450.0 (vypíše se)

Výsledek je 50.0, ne 50. Když v násobení je aspoň jedno desetinné číslo (float), je i výsledek float.

Dělení a zbytek

Python má tři operátory pro dělení. / dělí přesně a výsledek je vždy float. // dělí celočíselně (zaokrouhlí dolů). % vrátí zbytek.

Máš 17 bonbonů a rozdělíš je 5 dětem. Kolik dostane každé a kolik zbude?
17 // 5 = 3 bonbony pro každé dítě. 17 % 5 = 2 bonbony zbydou. Kontrola: 5 · 3 + 2 = 17.
Kolik je 2 + 3 * 4 a (2 + 3) * 4?
Násobení má přednost: 2 + 12 = 14. Se závorkou se nejdřív sčítá: 5 · 4 = 20.

Doplň výsledky. Zkus to nejdřív v hlavě, až pak klepni.

✗x = 5 znamená, že x se rovná 5 navždy, a x = x + 1 je nesmysl, protože 5 ≠ 6.
✓x = x + 1 vezme starou hodnotu x, přičte 1 a výsledek uloží zpět do x.

= je přiřazení, ne rovnost. Porovnání se v Pythonu píše ==.

Program načte vstup, spočítá výraz a vypíše výstup. input() vrací text, převeď ho přes int() nebo float(). / dává float, // celou část a % zbytek.