Operátor je symbol, ktorý vykonáva nejakú operáciu s jednou alebo viacerými hodnotami (operandmi). Napríklad znak + je operátor, ktorý vykonáva operáciu sčítania.
Výraz je kombinácia hodnôt, premenných, operátorov a funkcií, ktorá sa vyhodnotí na nejaký výsledok.
Napríklad 2 + 3 je výraz, ktorý sa vyhodnotí na hodnotu 5.
Aritmetické operátory sa používajú na vykonávanie základných matematických operácií.
| Operátor | Názov | Príklad | Výsledok |
|---|---|---|---|
| + | Sčítanie | 5 + 3 | 8 |
| - | Odčítanie | 5 - 3 | 2 |
| * | Násobenie | 5 * 3 | 15 |
| / | Delenie | 5 / 3 | 1.6666... |
| // | Celočíselné delenie | 5 // 3 | 1 |
| % | Modulo (zvyšok po delení) | 5 % 3 | 2 |
| ** | Umocnenie | 5 ** 3 | 125 |
# Príklady aritmetických operátorov
a = 10
b = 3
# Základné operácie
print(a + b) # Sčítanie: 13
print(a - b) # Odčítanie: 7
print(a * b) # Násobenie: 30
print(a / b) # Delenie: 3.3333...
# Celočíselné delenie (výsledkom je celé číslo, desatinná časť sa zahodí)
print(a // b) # Celočíselné delenie: 3
# Modulo (zvyšok po delení)
print(a % b) # Modulo: 1
# Umocnenie
print(a ** b) # Umocnenie: 1000
Python rešpektuje štandardnú matematickú prioritu operácií:
()***, delenie /, celočíselné delenie //, modulo %+, odčítanie -
# Príklady priority operácií
vysledok1 = 2 + 3 * 4 # 3 * 4 = 12, potom 2 + 12 = 14
print(vysledok1) # Výpis: 14
vysledok2 = (2 + 3) * 4 # 2 + 3 = 5, potom 5 * 4 = 20
print(vysledok2) # Výpis: 20
vysledok3 = 2 ** 3 * 2 # 2 ** 3 = 8, potom 8 * 2 = 16
print(vysledok3) # Výpis: 16
vysledok4 = 2 * 3 ** 2 # 3 ** 2 = 9, potom 2 * 9 = 18
print(vysledok4) # Výpis: 18
V Pythone sa pri práci s reťazcami používajú tieto základné operácie:
retazec1 + retazec2cislo * retazec
# Príklady operácií s reťazcami
vysledok1 = "meno" + "priezvisko"
print(vysledok1) # Výpis: menopriezvisko
vysledok2 = "jablko" + " " + "banan"
print(vysledok2) # Výpis: jablko banan
vysledok3 = 3 * "bu"
print(vysledok3) # Výpis: bububu
vysledok4 = ("ka") * 2 + "o"
print(vysledok4) # Výpis: kakao
Porovnávacie operátory sa používajú na porovnanie dvoch hodnôt. Výsledkom porovnania je logická hodnota True (pravda) alebo False (nepravda).
| Operátor | Význam | Príklad | Výsledok |
|---|---|---|---|
| == | Rovná sa | 5 == 5 | True |
| != | Nerovná sa | 5 != 3 | True |
| > | Väčší ako | 5 > 3 | True |
| < | Menší ako | 5 < 3 | False |
| >= | Väčší alebo rovný | 5 >= 5 | True |
| <= | Menší alebo rovný | 5 <= 3 | False |
# Príklady porovnávacích operátorov
a = 10
b = 3
c = 10
print(a == b) # Rovná sa: False
print(a != b) # Nerovná sa: True
print(a > b) # Väčší ako: True
print(a < b) # Menší ako: False
print(a >= c) # Väčší alebo rovný: True
print(a <= c) # Menší alebo rovný: True
# Porovnanie reťazcov
meno1 = "Adam"
meno2 = "Beata"
print(meno1 == meno2) # False
print(meno1 < meno2) # True - porovnáva sa podľa abecedy
Logické operátory sa používajú na kombinovanie logických výrazov a pracujú s logickými hodnotami.
| Operátor | Popis | Príklad | Výsledok |
|---|---|---|---|
| and | Logický súčin - pravda, ak obe podmienky sú pravdivé | True and True | True |
| or | Logický súčet - pravda, ak aspoň jedna podmienka je pravdivá | True or False | True |
| not | Logická negácia - prevráti pravdivostnú hodnotu | not True | False |
Pravdivostná tabuľka ukazuje výsledky logických operácií pre všetky možné kombinácie vstupných hodnôt.
| A | B | A and B |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
| A | B | A or B |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
| A | not A |
|---|---|
| True | False |
| False | True |
vek = 16
vyska = 175
# Použitie operátora and
je_dospely = vek >= 18
je_vysoky = vyska >= 180
ma_vodicky_preukaz = je_dospely and je_vysoky
print("Má vodičský preukaz:", ma_vodicky_preukaz) # False, pretože obe podmienky nie sú splnené
# Použitie operátora or
ma_zlavneny_listok = vek < 18 or vek >= 65
print("Má zľavnený lístok:", ma_zlavneny_listok) # True, pretože aspoň jedna podmienka je splnená
# Použitie operátora not
nie_je_dospely = not je_dospely
print("Nie je dospelý:", nie_je_dospely) # True
# Kombinovanie logických operátorov
vysledok = (vek > 15 and vyska > 160) or vek >= 18
print("Výsledok kombinovanej podmienky:", vysledok) # True
Doteraz sme do premenných vkladali údaje my - ako programátory. V praxi však vytvárame programy pre užívateľov (niekoho cudzieho, kto program nepísal). Preto bude užitočné zistiť údaje od neho, a na základe jeho údajov potom program niečo urobí.
input(). To čo užívateľ po výzve zapíše je vždy reťazec (typ str). Ak by sa aj jednalo o číselný údaj, ak s ním chceme počítať ako s číslom, budeme ho v programe musieť pretypovať:
Pozn. Ako ste videli v predzádzajúcom príklade, pri výpise cez príkaz print môžeme vypisovať obsah premennej ale i komplikovanejší výstup, vtedy je výhodnejšie použiť tzv. formátovaný reťazec na výstupe, ktorým kombinujeme texty a obsahy premenných. Takže môžeme namiesto príkazu print("Priemer známok:",zn1,zn2,zn3,"je:",priemer,".") použiť zápis: print(f'Priemer známok: {zn1}, {zn2}, {zn3} je {priemer}.'), kde priemer, zn1, zn2 a zn3 sú premenné obsahujúce čísla.
Niekedy vstup nechceme od užívateľa, ale chceme použiť nejakú náhodnú hodnotu. Na jej použitie použijeme príkazy z knižnice random.
random.randint(a,b). Ak chceme, vybrať náhodnú hodnotu z nejakej množiny, urobíme to príkazom random.choice((hodnota1, hodnota2, hodnota3,...hodnotaN))), kde miesto hodnotyX zadáme konkrétne hodnoty, z ktorýh chceme losovať.
Pozn. V príkaze random.choice(parameter) musí byť parameter typu n-tica, t.j. v zátvorke uvedených, a čiarkou oddelených niekoľko hodnôt. Preto, ak priamo vymenúvate hodnoty, nezabudnite zapísať do príkazu dvojicu zátvoriek.
Výstup:
Napíšte program, ktorý od užívateľa načíta 4 známky (alebo ich náhodne vygeneruje): z predmetu matematika, informatika, fyzika a chémia. Program má z nich vypočítať priemernú známku (zaokrúhlenú na 1 desatinné miesto) a vypísať, či je žiak vyznamenaný, t.j. napíše True ak je priemer jeho známok menší alebo rovný 1.5, v opačnom prípade vypíše False.
Očakávaný výstup:
Pomôcka:
je_vyznamenaný = (priemer <= 1.5)
print(f"Je vyznamenaný: {je_vyznamenaný}")
Napíšte program podobný Luvikovi (konverzačný ChatBot), ktorý sa užívateľa spýta na jeho meno, potom ho pozdraví s oslovením (Ahoj ...!). Následne od neho zistí, jeho obľúbenú farbu, na čo mu Chatbot odpovie (No ... je pekná farba, aj mne sa páči.). Potom sa ho spýta na počet súrodencov a Chatbot mu odpovie vetou, kde skonštatuje, koľko detí je v rodine (Takže ste dokopy ..., to musí byť u vás veselo.) Nakoniec konverzáciu ukončí (Dobre sme si pokecali, ďakujem.)
Očakávaný výstup:
1. Ktorý operátor sa používa na umocňovanie v Pythone?
a) ^2. Aký je výsledok operácie 10 % 3?
a) 33. Ktorý operátor sa používa na spájanie reťazcov?
a) &4. Ktorý logický operátor reprezentuje 'a zároveň'?
a) or5. Aký je výsledok operácie (5 > 3 and 10 <= 10)?
a) True6. Ktorý operátor sa používa na celočíselné delenie?
a) /7. Ktorý operátor sa používa na zistenie nerovnosti?
a) <>8. Aký je výsledok operácie 'Ha ' * 3?
a) Ha Ha Ha9. Akým príkazom vygenerujeme náhodné číslo od 5 do 10?
a) randint(5,10)10. Aký bude výstup nasledujúceho kódu?
x = 5
y = 10
print(not(x < y and y > 15))
print(x > y or not(y < 15))
a) False True