Späť na hlavnú stránku

Premenné a údajové typy v Pythone

1. Čo sú premenné?

Premennú si pre jednoduchosť predstavte ako úložný box, kde si odložíte nejaký údaj (lebo ho v budúcnosti budete potrebovať). Premenná môže obsahovať údaj rôzneho typu (môže to byť celé číslo, alebo desatinné číslo, alebo reťazec znakov,...) Na rozdiel od niektorých iných programovacích jazykov nemusíme v Pythone deklarovať typ premennej vopred, tzn. nemusíme určiť, akého typu bude údaj vložený do premennej.

V Pythone je možné vytvoriť premennú jednoducho priradením hodnoty k zvolenému názvu premennej pomocou znaku rovná sa =

meno = "Peter"
vek = 25
vyska = 1.80
je_student = True

Pravidlá pre názvy premenných

Príklad správnych názvov premenných:

meno = "Anna"
meno_a_priezvisko = "Anna Nováková"
mojaPremenna = "hodnota"
moja_premenna = meno
_premenna = 100
KONSTANTA = 3.14159

Príklad nesprávnych názvov premenných:

2meno = "Peter"
# začína číslicou

moje-meno = "Peter"
# obsahuje pomlčku

for = 123
# kľúčové slovo "for" je v Pythone súčasť príkazu cyklu

2. Práca s premennými

Do premennej sa dá kedykoľvek vložiť nejaký iný obsah, pôvodný sa však stratí. Pri novom priradení sa postupuje takto:

Zmena obsahu premennej

Do premennej sa dá vložiť hodnote, dí sa jej hodnota upraviť, dá sa do nej vložiť údaj úplne iného typu, alebo sa do nej dá dať aj hodnota inej premennej.

pocet = 10
print(pocet) # Vypíše: 10

pocet = pocet + 15
print(pocet) # Vypíše: 25

pocet = "vela"
print(pocet) # Vypíše: vela

x = 10
y = 5
vysledok = x + y
vysledok = vysledok * 2
pocet = vysledok
print(x,y,vysledok,pocet) # Vypíše: 10 5 30 30
Poznámka: Príkaz print() vypíše na obrazovku obsah premennej (alebo premenných) uvedenej v zátvorkách príkazu.

Viacnásobné priradenie

a, b, c = 1, 2, 3
print(a) # Vypíše: 1
print(b) # Vypíše: 2
print(c) # Vypíše: 3
print(a,b,c) # Vypíše: 1 2 3

3. Základné údajové typy v Pythone

Python má niekoľko štandardných údajových typov:

Typ Popis Príklad
str (reťazec) Textové údaje "Ahoj", 'svet'
int (celé číslo) Celé čísla bez desatinnej časti 42, -8, 0
float (desatinné číslo) Čísla s desatinnou časťou 3.14, -0.5, 2.0
bool (logická hodnota) Môže byť len True (pravda) alebo False (nepravda) True, False
list (zoznam) Usporiadaná a meniteľná kolekcia [1, 2, 3], ["a", "b", "c"]
tuple (n-tica) Usporiadaná a nemeniteľná kolekcia (1, 2, 3)
dict (slovník) Kolekcia párov kľúč : hodnota {"meno": "Peter", "vek": 25}
set (množina) Neusporiadaná kolekcia unikátnych prvkov {1, 2, 3}
NoneType Reprezentuje neprítomnosť hodnoty None

Reťazce (str)

Reťazce sú sekvencie znakov uzavreté v jednoduchých (' ') alebo dvojitých (" ") úvodzovkách.

meno = "Peter"
pozdrav = 'Ahoj'
veta = "Učím sa programovať v Pythone"
antonymum = "Opakom 'rýchly' je 'pomalý'."
medzera = " "
nic = ""
heslo = "V3lm1_S1ln3.H3$Lo"

Celé čísla (int)

Celé čísla sú čísla bez desatinnej časti.

vek = 25
zaporne_cislo = -10
nula = 0

Desatinné čísla (float)

Float reprezentuje čísla s desatinnou časťou.

vyska = 1.80
teplota = -2.5
eulerovoCislo = 2.71828182846

Logické hodnoty (bool)

Logický typ môže mať len dve hodnoty: True (pravda) alebo False (nepravda).

je_student = True
ma_vodicky_preukaz = False

4. Zisťovanie typu premennej

Na zistenie typu premennej môžeme použiť funkciu type().

meno = "Peter"
vek = 25
vyska = 1.80
je_student = True

print(type(meno))
print(type(vek))
print(type(vyska))
print(type(je_student))

Výstup:

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

5. Pretypovanie

V Pythone môžeme konvertovať (zmeniť) hodnoty z jedného typu na iný pomocou funkcií ako str(), int(), float(), bool().

Dôvody nutnosti pretypovania

# Konverzia z int na str
vek = 25
vek_ako_text = str(vek)
odpoved = "Môj vek je " + vek_ako_text
# nedá sa sčítať: str + int, iba spojiť: str + str
print(odpoved)

# Konverzia z str na int
cislo_text = "24"
cislo = int(cislo_text)
odpoved = cislo + 6
# nedá sa sčítať: str + int, počítať sa dá: int + int
print(odpoved)

# Konverzia z int na float
cislo = 10
cislo_float = float(cislo)
print(cislo_float)
# k cislu prida desatinu ciarku a .0

# Konverzia z float na int (odreže desatinnú časť)
e = 2.71828182846
e_int = int(e)
print(e_int)

Výstup:

Môj vek je 25
30
10.0
2
Poznámka: Pri konverzii z float na int sa desatinná časť jednoducho odreže (nepoužíva sa zaokrúhľovanie). Ak potrebujete zaokrúhliť číslo, použite funkciu round(). Napríklad:

import math
		
PI = math.pi
zaokruhlene_pi=round(PI,2)
print(PI)
print(zaokruhlene_pi)

Príklady

Príklad 1: Obvod a obsah obdĺžnika

# Vstupné hodnoty
dlzka = 5
sirka = 3

# Výpočty
obvod = 2 * (dlzka + sirka)
obsah = dlzka * sirka

# Výstup
print("Dĺžka obdĺžnika:", dlzka, "m")
print("Šírka obdĺžnika:", sirka, "m")
print("Obvod obdĺžnika:", obvod, "m")
print("Obsah obdĺžnika:", obsah, "m²")

Výstup:

Dĺžka obdĺžnika: 5 m
Šírka obdĺžnika: 3 m
Obvod obdĺžnika: 16 m
Obsah obdĺžnika: 15 m²

Príklad 2: Výpočet DPH

# Vstupné hodnoty
cena_bez_dph = 100
sadzba_dph = 20 # v percentách

# Výpočty
dph = cena_bez_dph * (sadzba_dph / 100)
cena_s_dph = cena_bez_dph + dph

# Výstup
print("Cena bez DPH:", cena_bez_dph, "EUR")
print("Sadzba DPH:", sadzba_dph, "%")
print("DPH:", dph, "EUR")
print("Cena s DPH:", cena_s_dph, "EUR")

Výstup:

Cena bez DPH: 100 EUR
Sadzba DPH: 20 %
DPH: 20.0 EUR
Cena s DPH: 120.0 EUR

Príklad 3: Konverzia teploty z Celzia na Fahrenheita

# Vzorec: (°C × 9/5) + 32 = °F

# Vstupná hodnota
teplota_celsius = 25

# Konverzia
teplota_fahrenheit = (teplota_celsius * 9/5) + 32

# Výstup
print(teplota_celsius, "stupňov Celzia je", teplota_fahrenheit, "stupňov Fahrenheita")

Výstup:

25 stupňov Celzia je 77.0 stupňov Fahrenheita

Úlohy na vlastnú prácu

Úloha 1: Výpočet obsahu a obvodu kruhu

Napíšte program, ktorý vypočíta obvod a obsah kruhu s polomerom 7 cm. Pre hodnotu π použite hodnotu 3.14159.

Vzorce:
Obvod kruhu = 2 × π × r
Obsah kruhu = π × r²

Očakávaný výstup:
Polomer kruhu: 7 cm
Obvod kruhu: 43.98226 cm
Obsah kruhu: 153.93791 cm²

Úloha 2: Výpočet priemernej známky

Študent získal z piatich testov nasledujúce známky: 1, 2, 1, 3, 2. Vypočítajte jeho priemernú známku a výsledok zaokrúhlite na dve desatinné miesta.

Tip: Na zaokrúhlenie na dve desatinné miesta použite funkciu round(cislo, 2).

Očakávaný výstup:
Známky: 1, 2, 1, 3, 2
Priemerná známka: 1.8

Úloha 3: Konverzia meny

Napíšte program na konverziu 100 EUR na USD. Predpokladajte, že výmenný kurz je: 1 EUR = 1.09 USD.

Očakávaný výstup:
100 EUR = 109.0 USD

Úloha 4: Výpočet zľavy

Tovar stojí 50 EUR. Počas akcie je na tovar zľava 15 %. Koľko EUR zákazník ušetrí a aká bude konečná cena?

Očakávaný výstup:
Pôvodná cena: 50 EUR
Zľava: 15 %
Výška zľavy: 7.5 EUR
Konečná cena: 42.5 EUR

Úloha 5: Nákupný košík

V nákupnom košíku máte 3 položky. Prvá položka stojí 12.50 EUR, druhá 8.75 EUR a tretia 15.20 EUR. Vypočítajte celkovú cenu nákupu a priemernú cenu na jednu položku.

Očakávaný výstup:
Položka 1: 12.50 EUR
Položka 2: 8.75 EUR
Položka 3: 15.20 EUR
Celková cena: 36.45 EUR
Priemerná cena na položku: 12.15 EUR

Overenie vedomostí

Test - Premenná a údajové typy v Pythone

1. Ktorý z nasledujúcich názvov premenných nie je v Pythone platný?

a) moje_cislo
b) MojeCislo
c) 1_cislo
d) _cislo

2. Aký je výsledok nasledujúceho výrazu? 5 + 3.0

a) 8
b) 8.0
c) "8"
d) "8.0"

3. Aký údajový typ vracia nasledujúci výraz? type("42")

a) int
b) float
c) str
d) bool

4. Aký bude výsledok nasledujúceho kódu?

x = 10
x = x+5
x = 2*x
print(x)

a) 20
b) 25
c) 30
d) 15

5. Čo sa stane pri vykonaní nasledujúceho kódu?

cislo = "42"
vysledok = cislo + 8
print(vysledok)

a) Vypíše: 50
b) Vypíše: 428
c) Vypíše: "428"
d) Nastane chyba

6. Aký bude výsledok nasledujúceho kódu?

x = 10.5
y = int(x)
print(y)

a) 10
b) 11
c) 10.0
d) 10.5

7. Ktorý z nasledujúcich výrazov vráti hodnotu typu boolean?

a) 5 + 3
b) "Python" + "3"
c) 5 < 3
d) 2.761

8. Aký bude výstup tohto kódu?

x = "5"
y = "10"
print(x + y)

a) 15
b) "15"
c) "510"
d) Chyba

9. Ktorý z nasledujúcich príkazov správne vytvorí premennú v Pythone?

a) int x = 10
b) x := 10
c) declare x = 10
d) x = 10

10. Čo sa stane po vykonaní programu:

cislo = 100
cislo_float = float(cislo)
print(cislo_float)

a) vypíše 100
b) vypíše 100.0
c) vypíše "100"
d) vypíše "100.0"


Späť na hlavnú stránku