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.
body = 10 vytvoří proměnnou body s hodnotou 10.=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.10 je celé číslo, "10" je text.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š? ")| Typ | Česky | Příklad | Poznámka |
|---|---|---|---|
int | celé číslo | 42, -7 | libovolně velké |
float | desetinné číslo | 3.14, 2.0 | v kódu desetinná tečka |
str | řetězec (text) | "ahoj", '42' | v uvozovkách |
bool | pravdivostní hodnota | True, False | velké první písmeno |
Typ hodnoty zjistíš funkcí type(). Například type(3.0) vrátí float.
| Operátor | Význam | Příklad | Výsledek |
|---|---|---|---|
+ - | sčítání, odčítání | 7 - 2 | 5 |
* | násobení | 7 * 2 | 14 |
/ | dělení (vždy float) | 7 / 2 | 3.5 |
// | celočíselné dělení | 7 // 2 | 3 |
% | zbytek po dělení (modulo) | 7 % 2 | 1 |
** | mocnina | 2 ** 3 | 8 |
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.
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.a = 5, a = a * 2, a = a - 3, print(a)?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.
= 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().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.
_, nesmí obsahovat mezery a záleží v něm na velikosti písmen.cena, pocet_kusu, Cena (to je jiná proměnná než cena).cena * pocet je výraz. Když cena = 25 a počet = 3, má hodnotu 75.int celé číslo, float desetinné číslo, str text, bool pravda/nepravda (True/False).25 je int, 25.0 je float, "25" je str.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 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č.cena = float(input("Cena za kus: "))pocet = int(input("Počet kusů: "))celkem = cena * pocetprint(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:
| Řádek | cena | pocet | celkem |
|---|---|---|---|
| 1 | 12.5 | – | – |
| 2 | 12.5 | 4 | – |
| 3 | 12.5 | 4 | 50.0 |
| 4 | 12.5 | 4 | 50.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.
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.
17 // 5 = 3 bonbony pro každé dítě. 17 % 5 = 2 bonbony zbydou. Kontrola: 5 · 3 + 2 = 17.2 + 3 * 4 a (2 + 3) * 4?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 ==.
input() vrací text, převeď ho přes int() nebo float(). / dává float, // celou část a % zbytek.