Výpis shrnutí
Proměnné a výrazy
Podtémata
Proměnné a výrazy
Práce s proměnnými a výrazy představují základní stavební bloky, ze kterých následně stavíme programy pomocí konstrukcí pro řízení výpočtu.
Základní procvičování v tomto tématu máme rozdělené na tři podtémata:
- Proměnné a číselné výrazy v Pythonu – základní použití proměnných, zápis aritmetických výrazů
- Matematické funkce v Pythonu – použití základních matematických funkcí (např. zaokrouhlování, minimum, absolutní hodnota)
- Logické výrazy v Pythonu – operátory porovnání, logické spojky a jejich použití
Další výrazy pak tvoříme například za využití řetězců a seznamů.
Pro úplné začátečníky v Pythonu může být užitečné si jako rozcvičku projít cvičení na proměnné z oblasti algoritmické myšlení. Tam je možné si procvičit základní principy proměnných bez specifik Pythonu.
NahoruProměnné a číselné výrazy v Pythonu
Proměnná je jméno, které odkazuje na nějakou hodnotu. Hodnota proměnné se může měnit – ostatně se taky jmenuje „proměnná“.
Názvy proměnných
Názvy proměnných mohou obsahovat písmena, čísla a znak podtržítko.
Nesmí obsahovat mezeru a nesmí začínat na číslo. V názvech proměnných se rozlišují velká a malá písmena, tj. number a
Number jsou dvě různé proměnné. V Pythonu je zvykem psát
jména proměnných malými písmeny. Ve víceslovných
názvech proměnných používáme podtržítko, např. list_length.
Python 3 umožňuje používat v názvech proměnných i znaky české abecedy.
Dobrá praxe však je psát názvy proměnných anglicky.
Názvy proměnných volíme popisné.
Příklady:
- korektní názvy proměnných:
name,k,max_value - neplatné názvy proměnných:
2nd_var,actor name,max-value
Vytvoření a aktualizace proměnné
Proměnnou vytvoříme prostě tak, že do ní přiřadíme hodnotu. Hodnotu můžeme následně aktualizovat. Proměnná drží poslední hodnotu, která do ní byla přiřazena. Pro přiřazení používáme rovnítko:
x = 20 # vytvoření proměnné x a přiřazení hodnoty 20
y = 5 # vytvoření proměnné y a přiřazení hodnoty 5
x = 10 # změna hodnoty x na 10
print(x, y) # vypíše 10 5Proměnné mohou být různého
typu. Python je dynamicky typovaný programovací jazyk. To znamená,
že v programu nemusíme uvádět typ proměnné, interpret jazyka jej určí
automaticky. Pokud provedeme přiřazení x = 5, proměnná
x bude automaticky typu int (celé číslo).
Výpis proměnných a výrazů
Výpis provádíme pomocí funkce print. Ta může mít více
parametrů. Pokud chceme vypisovat znaky pro aritmetické operace, musíme
je dát do uvozovek či apostrofů. Příklady:
a = 3
b = 8
print(a) # výstup: 3
print(a, b) # výstup: 3 8
print(a + b) # výstup: 11
print(a, "+", b) # výstup: 3 + 8Aritmetické operace
S čísly můžeme provádět základní aritmetické operace, zápis je stejný
jako na běžných kalkulačkách (+, -, /, *). Python také
nabízí podporu pro operace celočíselné dělení
(//), dělení se zbytkem (%) a
umocňování (**) – tyto operace se při programování často hodí.
x + y # sčítání
x - y # odčítání
x * y # násobení
x / y # dělení
x // y # celočíselné dělení
x % y # dělení se zbytkem
x ** y # umocňováníV programování nemůžeme vynechávat zápis násobení tak jako v matematice, tj. nemůžeme psát y = 2x, musíme násobení
zapsat s hvězdičkou y = 2*x.
Priorita operací je stejná jako v matematice a stejně jako v matematice můžeme používat závorky:
print(2+3*4) # -> 14
print((2+3)*4) # -> 20
x = 5
print(3*x**2) # -> 75
print((3*x)**2) # -> 225Zkrácený zápis
Při programování často aktualizujeme hodnotu proměnné tak, že k ní
přičítáme určitou hodnotu, např. x = x + 1,
money = money + wage. Protože to je častá operace, nabízí
Python zkrácený zápis pomocí operátoru +=. Podobný operátor
máme i pro další aritmetické operace.
x += 1 # to stejné jako x = x + 1
x *= 2 # to stejné jako x = x * 2
money -= price # to stejné jako money = money - priceMatematické funkce v Pythonu
Python nabízí vestavěné funkce pro základní matematické funkce, například:
abs(x) # absolutní hodnota x
round(x) # zaokrouhlená hodnota x (na celé číslo)
round(x, 2) # zaokrouhlená hodnota x na 2 desetinná místa
min(x, y) # minimum z x, y
max(x, y, z) # maximum z x, yDalší užitečné matematické funkce (např. log,
sqrt, sin, floor) Python nabízí v knihovně math.
Logické výrazy v Pythonu
Logické výrazy Python vyhodnocuje na hodnoty True
(pravda) a False (nepravda). Přesný zápis těchto konstant
bývá zdrojem chyb:
- Velké písmeno je důležité:
Trueje logická konstanta (pravda), kdežtotrueje název proměnné (která může držet libovolnou hodnotu). "True"a"False"(tj. názvy logických konstant psány v uvozovkách) jsou obyčejné řetězce, nikoliv konstanty se speciálním významem.
Operátory porovnání
Základním logickým výrazem je porovnání mezi dvěma výrazy (např.
porovnání hodnoty proměnné a konstanty). Operátory větší/menší
zapisujeme podobně jako v matematice (> a
<), „větší/menší nebo rovno“ zapisujeme
>= a <=. Test na rovnost provádíme
pomocí dvou rovnítek (==). Test na nerovnost zapisujeme
!=.
Příklady:
x = 42 # přiřazení do proměnné
x == 42 # test rovnosti
x != 42 # test nerovnosti
x > 42 # je větší
x >= 42 # je větší nebo rovnoPozor na rozdíl mezi přiřazením do proměnné (jedno rovnítko) a testem na rovnost (dvě rovnítka).
Varování: operátor is
Python obsahuje i další pokročilejší operátory. Mezi záludné patří
is, které se zdánlivě chová podobně jako == a jeho použití bývá zdrojem chyb. Operátor is je užitečný
nástroj pro pokročilé programátory, začátečníkům silně doporučujeme se mu vyhnout.
Logické spojky
Základní logické výrazy můžeme kombinovat pomocí klasických logických spojek:
not= negaceand= a zároveň (konjunkce) = výsledek jeTrue, pokud jsou oba dva argumentyTrueor= nebo (disjunkce) = výsledek jeTrue, pokud je alespoň jeden z argumentůTrue
a = True # pravda
b = False # nepravda
c = a or b # nebo -> True
c = a and b # a zároveň -> False
c = not a # negace -> FalsePro procvičení významu spojek využijte cvičení Binární křížovka.
Zajímavost: logické spojky v jiných jazycích
V některých programovacích jazycích se logické spojky zapisují pomocí
symbolů &, |, !. Na tyto
symboly můžete v Pythonu také narazit (např. u množinových operací), ale
pro logické spojky se nepoužívají, ty se v Pythonu píší anglickými názvy
and, or, not.
Priority logických spojek
Priority operátorů jsou sestupně: not, and,
or (tj. nejvyšší prioritu má not). Pro změnu
priority či větší čitelnost výrazů můžeme využít závorky.
x = a or b and c # nejdříve se vyhodnotí and, až poté or
x = a or (b and c) # to stejné jako předchozí, jen čitelněji zapsáno
x = (a or b) and c # tentokrát se nejdřív vyhodnotí or
x = not a or b # nejdříve not, až potom or
x = not (a or b) # nejdříve or, potom not