Python

Úvod do Pythonu #

Čo je Python? #

Python je dynamický, interpretovaný programovací jazyk, ktorý je známy pre svoju čitateľnosť a flexibilitu. Je vhodný pre rôzne účely, od webového vývoja po vedecké výpočty, kreatívne programovanie a aplikácie v umení.

Príprava vášho programovacieho prostredia #

Python #

  • Navštívte oficiálnu stránku Pythonu: https://www.python.org/downloads/
  • Stiahnite si najnovšiu verziu Pythonu pre váš operačný systém.
  • Spustite inštalačný program a postupujte podľa pokynov.

Editor #

Prvé kroky #

  • Otvorte terminál alebo príkazový riadok.
  • Napíšte ‘python’ alebo ‘python3’, aby ste spustili interaktívny režim.
  • Skúste napísať jednoduchý príkaz, napríklad: ‘print(“Ahoj svet!”)’.

Základné koncepty #

  • Premenné: ‘meno = “Peter”’
  • Dátové typy: ‘cislo = 10’
  • Riadiace štruktúry: ‘if’, ‘for’, ‘while’
  • Funkcie: ‘def pozdrav():’

Príklady kódu #

     # Výpis na obrazovku
     print("Ahoj svet!")

     # Premenné
     meno = "Peter"
     vek = 30

     # Podmienkové vetvenie
     if vek > 18:
         print(meno + " je dospelý.")
     else:
         print(meno + " nie je dospelý.")

     # Cykly
     for i in range(5):
         print("Číslo " + str(i))

     # Funkcia
     def pozdrav(meno):
         return "Ahoj " + meno + "!"

     print(pozdrav("Anna"))

Variables / premenné #

Variables / premenné #

Čo Sú Premenné? #

  • Premenné sú symboly, ktoré slúžia ako kontajnery na uchovávanie dátových hodnôt.
  • V Pythoni sú premenné dynamicky typované, čo znamená, že ich typ sa určuje automaticky počas behu programu.
  • Nemusíte deklarovať typ premennej ako v iných jazykoch.

Deklarácia Premennej #

  • Premennú vytvoríte jednoduchým priradením hodnoty.
   x = 5
   meno = "Anna"

Typy Premenných #

  • Premenné môžu držať rôzne typy hodnôt, ako sú:
    • Celé čísla (int)
    • Desatinné čísla (float)
    • Reťazce (str)
    • Zoznamy (list)
    • Slovníky (dict)
    • Boolovské hodnoty (bool)

Premenné a Ich Typy #

  • Python umožňuje zistiť typ premennej pomocou funkcie `type()`.
   typ_x = type(x)
   typ_meno = type(meno)

Zmena Typu Premennej #

  • Premenné môžete explicitne pretypovať na iný dátový typ pomocou funkcií ako `int()`, `str()`, `float()`, atď.
   cislo = "8.0" # float
   cislo = int(cislo)  # teraz je 'cislo' typu int

Lokálne a Globálne Premenné #

  • Lokálne premenné: Sú definované vo funkcii a dostupné len v rámci tejto funkcie.
  • Globálne premenné: Sú definované mimo akýchkoľvek funkcií a sú dostupné v celom kóde.

Lokálne premenné #

  • Definované vo funkcii
  • Prístupné iba v rámci tejto funkcie
  • Neviditeľné pre zvyšok programu
   def funkcia():
       lokalna_premenna = "Toto je lokálna premenná"
       print(lokalna_premenna)  # Toto funguje správne
   funkcia()
   # print(lokalna_premenna)  # Toto by spôsobilo chybu

Globálne premenné #

  • Definované mimo akýchkoľvek funkcií
  • Prístupné z akéhokoľvek miesta v rámci kódu
   globalna_premenna = "Toto je globálna premenná"

   def funkcia():
       print(globalna_premenna)  # Toto funguje správne
   funkcia()
   print(globalna_premenna)  # Toto tiež funguje správne
  • Použitie globálnych premenných vo funkcii

    • Ak chcete zmeniť globálnu premennú vo funkcii, musíte ju označiť pomocou kľúčového slova ‘global’.
    globalna_premenna = "Pôvodná hodnota"
    
    def zmenGlobalnu():
        global globalna_premenna
        globalna_premenna = "Nová hodnota"
    
    print(globalna_premenna)  # Vypíše "Pôvodná hodnota"
    zmenGlobalnu()
    print(globalna_premenna)  # Vypíše "Nová hodnota"
    

Pravidlá pre Mená Premenných #

  • Musia začínať písmenom alebo podtržníkom.
  • Nemôžu začínať číslom.
  • Môžu obsahovať alfanumerické znaky a podtržníky (A-z, 0-9, a _).
  • Sú citlivé na veľkosť písmen, t.j. “Premenna” a “premenna” sú dve rozdielne premenné.

Dobré Praktiky pri Pomenovaní Premenných #

  • Používajte zrozumiteľné a popisné názvy.
  • Oddelujte slová podtržníkom (napr. “moja_premenna”).
  • Začnite privátne premenné s podtržníkom (napr. “_skryta_premenna”).
  • Vyhnite sa používaniu interných kľúčových slov Pythonu ako názvy (napr. “list”, “str”).

Pravidlá pre premenné #

  1. Premenné by mali mať významné názvy.
  2. Používajte lokálne premenné pre dáta relevantné len pre funkciu.
  3. Obmedzte použitie globálnych premenných kvôli lepšej udržateľnosti kódu.

Import modulu #

Import modulu #

Čo Robí ‘import’ #

  • Nahráva modul a umožňuje prístup k jeho funkciám, triedam a premenným.
  • Vyhľadá súbory s rozšírením .py, kompiluje ich do .pyc (ak je to potrebné) a potom spúšťa inicializačný kód.

Ako Používať ‘import’ #

  • Ak chcete importovať celý modul, jednoducho použite príkaz ‘import’ nasledovaný názvom modulu.
           import math
    
  • Teraz môžete pristupovať k funkciám a premenným v module ‘math’ s použitím bodkovej notácie.
           hodnota_pi = math.pi
           koren = math.sqrt(16)
    

Importovanie Špecifických Funkcií #

  • Môžete tiež importovať špecifické funkcie alebo komponenty z modulu, čo je užitočné, ak nepotrebujete celý modul.
           from math import sqrt, pi
    
  • Takto môžete používať ‘sqrt’ a ‘pi’ priamo bez potreby predpony ‘math.’.
           koren = sqrt(16)
           hodnota_pi = pi
    

Importovanie s Aliasom #

  • Ak je názov modulu dlhý alebo sa s ním ťažko pracuje, môžete mu priradiť alias.
           import numpy as np
    
  • Modul ’numpy’ je teraz prístupný pod skráteným názvom ’np’.
           pole = np.array([1, 2, 3])
    

Dôvody Použitia ‘import’ #

  • Umožňuje znovupoužitie kódu, ktorý bol napísaný a otestovaný inými programátormi.
  • Udržuje váš hlavný program čistý a ľahko čitateľný.
  • Optimalizuje pamäťové a časové zdroje tým, že nahráva iba tie moduly, ktoré sú potrebné.

Dôležité Poznámky #

  • Pri importovaní modulov by ste mali mať na pamäti poradie vyhľadávania:
    1. Aktuálny adresár.
    2. Adresáre uvedené v premennej prostredia PYTHONPATH.
    3. Štandardná knižnica.
  • Zbytočné importovanie modulov môže viesť k zvýšeniu pamäťovej záťaže a spomaleniu načítania programu.

Dátové Typy #

Dátové Typy #

Číselné Typy #

  • Int (Celé čísla): Reprezentujú celé čísla, môžu byť kladné alebo záporné bez desatinnej časti.
  • Float (Desatinné čísla): Čísla s desatinnou časťou alebo vedeckým zápisom.
  • Complex (Komplexné čísla): Skladajú sa z reálnej a imaginárnej časti, napríklad 2 + 3j.

Textové Typy #

  • Str (Reťazce): Uchovávajú postupnosť Unicode znakov, teda text.

Zoznamové Typy #

  • List (Zoznamy): Sú zmeniteľné, môžu obsahovať rôzne dátové typy a sú indexované.
  • Tuple (N-tice): Sú nemenné a indexované, podobne ako zoznamy.
  • Range (Rozsah): Reprezentujú postupnosť čísel.

Mapovacie Typy #

  • Dict (Slovníky): Neusporiadané kolekcie s párom kľúč-hodnota.

Boolovský Typ #

  • Bool (Boolovská hodnota): Môže nadobúdať len dve hodnoty: True alebo False.

Príklady Použitia #

   # Číselné typy
   cele_cislo = 10
   desatinne_cislo = 10.5
   komplexne_cislo = 3 + 4j

   # Textový typ
   retazec = "Ahoj svet"

   # Seznamové typy
   zoznam = [1, 2, 3]
   ntica = (1, 2, 3)
   rozsah = range(10)

   # Mapovacie typy
   slovnik = {"meno": "Eva", "vek": 28}

   # Množinové typy
   mnozina = {1, 2, 3}
   nemenna_mnozina = frozenset([1, 2, 3])

   # Boolovský typ
   pravdivostna_hodnota = True

Loops / cyklus #

Loops / cykly #

For cyklus #

  • Používa sa na iteráciu cez sekvenciu (napr. zoznam, slovník, množina, reťazec)
  • Iteruje presne toľkokrát, koľko je prvkov v sekvencii
   # Iterácia cez zoznam
   cisla = [1, 2, 3, 4, 5]
   for cislo in cisla:
       print(cislo)
   # Vypíše čísla od 1 do 5

   # Iterácia cez reťazec
   meno = "Peter"
   for znak in meno:
       print(znak)
   # Vypíše písmená mena Peter
  • Cyklus for je možné tiež použiť s funkciou range()
   for i in range(5):
       print(i)
   # Vypíše čísla od 0 do 4

While cyklus #

  • Opakuje blok kódu tak dlho, kým je podmienka pravdivá
  • Dôležité je nezabudnúť na aktualizáciu premennej používanej v podmienke, inak môže dôjsť k nekonečnému cyklu
   i = 0
   while i < 5:
       print(i)
       i += 1  # Veľmi dôležité aktualizovať i, inak by cyklus bol nekonečný
   # Vypíše čísla od 0 do 4

Kedy použiť ‘for’ a kedy ‘while’ #

  • ‘For’ je lepšie pre prípady, kde viete, koľkokrát chcete iterovať
  • ‘While’ je vhodnejší, keď iterujete dokým nie je splnená určitá podmienka, bez ohľadu na počet iterácií

List / Zoznam #

List / Zoznam #

Čo je zoznam? #

Vytvorenie zoznamu #

  • Zoznamy sa vytvárajú umiestnením položiek oddelených čiarkami do hranatých zátvoriek []
   moj_zoznam = [1, 2, 3, 'jablko', 'banán']

Prístup k položkám zoznamu #

  • K položkám zoznamu pristupujete pomocou indexu (začína od 0)
   prvy_prvok = moj_zoznam[0]  # vráti 1
   posledny_prvok = moj_zoznam[-1]  # vráti 'banán' (záporný index pristupuje od konca)

Zmena hodnoty položky #

  • Môžete zmeniť hodnotu položky priradením novej hodnoty na určitý index
   moj_zoznam[1] = 'hruška'  # zmení druhý prvok z 2 na 'hruška'

Pridanie položky #

  • Na pridanie položiek na koniec zoznamu použijete metódu append()
   moj_zoznam.append('pomaranč')  # pridá 'pomaranč' na koniec zoznamu

Vloženie položky #

  • Na vloženie položky na špecifický index použijete metódu insert()
   moj_zoznam.insert(1, 'kiwi')  # vloží 'kiwi' na pozíciu s indexom 1

Odstránenie položky #

  • Položky môžete odstrániť pomocou metódy remove() alebo del klauzuly
   moj_zoznam.remove('jablko')  # odstráni 'jablko' z zoznamu
   del moj_zoznam[0]  # odstráni prvú položku (teraz už 'kiwi')

Prechádzanie zoznamu #

  • Môžete prechádzať zoznam cyklom for
   for prvok in moj_zoznam:
       print(prvok)  # vypíše všetky položky v zozname

List comprehension #

  • Vytvorenie novej zoznamu z existujúceho pomocou elegantnej formy jednoradkového for cyklu
kvadraty = [x**2 for x in range(10)]  # vytvorí zoznam kvadrátov čísel od 0 do 9

Rozšírené operácie so zoznamami #

  • Metódy ako sort(), reverse(), a funkcie ako len(), max(), min() poskytujú ďalšie manipulácie so zoznamami
   moj_zoznam.sort()  # zoradí zoznam
   moj_zoznam.reverse()  # obráti poradie prvkov v zozname
   pocet_prvkov = len(moj_zoznam)  # získa počet prvkov v zozname
   najvacsi_prvok = max(moj_zoznam)  # získa najväčší prvok v zozname (ak sú prvky porovnateľné)
   najmensi_prvok = min(moj_zoznam)  # získa najmenší prvok v zozname (ak sú prvky porovnateľné)

String / Text #

String / Text #

Základy #

  • Reťazce sú sekvencie znakov obklopené úvodzovkami.
  • Sú nemenné, čo znamená, že ich nemôžete meniť po vytvorení.

Vytvorenie Reťazca #

   moj_retezec = "Toto je reťazec"
   viacriadkovy_retezec = """Toto je
   viacriadkový reťazec"""

Prístup k Znakom #

  • Použite indexáciu alebo rezy (slicing) na prístup k určitým častiam reťazca.
   prvy_znak = moj_retezec[0]
   posledny_znak = moj_retezec[-1]
   podretezec = moj_retezec[1:5]  # vráti znaky od indexu 1 po 4

Konkatenácia #

  • Dva alebo viac reťazcov môžete spojiť pomocou operátora `+`.
   spojeny_retezec = "Hello" + " " + "World!"

Opakovanie Reťazca #

  • Reťazec môžete opakovať použitím operátora `*`.
   opakovany_retezec = "opakuj " * 3

Dĺžka Reťazca #

  • Dĺžku reťazca získate pomocou funkcie `len()`.
   dlzka = len(moj_retezec)

Nahradenie Subreťazca #

  • Metóda `replace()` vám umožní nahradit výskyt subreťazca iným reťazcom.
   nahradeny_retezec = moj_retezec.replace("je", "nie je")

Rozdelenie Reťazca #

  • Metóda `split()` rozdelí reťazec na zoznam reťazcov na základe oddelovača.
   rozdeleny_retezec = "jedna, dve, tri".split(", ")

Odstránenie Bielych Znakov #

  • Metódy `strip()`, `rstrip()` a `lstrip()` odstránia biele znaky na začiatku a/alebo konci reťazca.
   ostripany_retezec = "  okraje  ".strip()

Formátovanie Reťazca #

  • Metóda `format()` alebo f-stringy môžu byť použité na vloženie premenných alebo výrazov do reťazca.
   meno = "Marek"
   vek = 30
   formatovany_retezec = "Meno: {}, Vek: {}".format(meno, vek)
   f_string = f"Meno: {meno}, Vek: {vek}"

Hľadanie Subreťazcov #

  • Metódy `find()` a `index()` vám umožnia lokalizovať pozíciu subreťazca v rámci reťazca.
   pozicia = moj_retezec.find("je")  # Vráti index prvej výskytu alebo -1, ak sa nenájde

Kontrola Obsahu Reťazca #

  • Metódy ako `startswith()`, `endswith()`, `isnumeric()`, atď., môžu byť použité na testovanie charakteristik reťazca.
   zacina_s = moj_retezec.startswith("Toto")
   je_cislo = "123".isnumeric()

Rozdiely medzi Zoznamom a Reťazcom v Pythoni #

  • Zoznam (List)

    • Mutabilita: Zoznamy sú zmeniteľné, t.j. ich obsah možno meniť po vytvorení.
    • Typy prvkov: Zoznam môže obsahovať prvky rôznych dátových typov.
    • Syntax: Zoznamy sú definované pomocou hranatých zátvoriek ([]) a prvky sú oddelené čiarkami.
    • Príklad:
             moj_zoznam = [1, "hello", [1, 2, 3]]
      
    • Použitie: Zoznamy sú vhodné na ukladanie kolekcií objektov, ktoré sa môžu počas behu programu meniť.
  • Reťazec (String)

    • Nemutabilita: Reťazce sú nemenné. Po ich vytvorení nemožno meniť ich obsah, len vytvoriť nový reťazec.
    • Typy znakov: Reťazec je sekvenčná kolekcia znakov (vždy typu str).
    • Syntax: Reťazce sú obklopené úvodzovkami (’…’, “…”, ‘’’…’’’ alebo “”"…""").
    • Príklad:
             moj_string = "hello"
      
    • Použitie: Reťazce sa používajú na reprezentáciu textových dát, ako sú slová a vety.
  • Kľúčové rozdiely

    • Mutabilita: Zoznamy sú mutable a reťazce sú immutable.
    • Typy prvkov: Zoznamy môžu obsahovať mix typov; reťazce obsahujú len znaky.
    • Použitie: Zoznamy pre meniteľné kolekcie objektov; reťazce pre nemenné sekvencie textu.

Slovník / Dict #

Slovník / Dict #

V Pythone je slovník (dict) zbierka kľúč-hodnota párov. Slovník je neusporiadaná, zmeniteľná a indexovaná kolekcia. Kľúče slovníka sú jedinečné a nesmú sa opakovať.

Vytvorenie Slovníka #

Nový slovník môžete vytvoriť umiestnením párov kľúč-hodnota do zložených zátvoriek {}.

moj_slovnik = {'meno': 'Peter', 'vek': 28}

Prístup k Hodnotám #

Hodnotu získate tak, že sa odkážete na jej kľúč.

print(moj_slovnik['meno']) # vypíše "Peter".

Pridanie alebo Zmena Prvkov #

Pridať alebo zmeniť hodnotu môžete priradením hodnoty k kľúču.

moj_slovnik['vek'] = 29

Odstránenie Prvkov #

Prvok môžete odstrániť pomocou príkazu del alebo metódy pop().

del moj_slovnik['vek']
#alebo
moj_slovnik.pop('vek')

Prechádzanie Slovníka #

Môžete prechádzať kľúče, hodnoty alebo oboje pomocou metód keys(), values() alebo items().

for k in moj_slovnik.keys():
    print(k)

for v in moj_slovnik.values():
    print(v)`

for k, v in moj_slovnik.items():
    print(f"{k}: {v}")

Kontrola Existencie Kľúča #

Zistiť, či kľúč existuje, môžete pomocou operátora in.

if 'meno' in moj_slovnik:
    print("Meno je v slovníku.")

Vstavané Metódy Slovníka #

  • clear(): Vymaže všetky prvky zo slovníka.
  • copy(): Vráti kópiu slovníka.
  • get(kľúč): Vráti hodnotu pre daný kľúč.
  • update({kľúč: hodnota}): Pridá pár(y) do slovníka.
moj_slovnik = {'meno': 'Eva', 'vek': 32}
moj_slovnik['práca'] = 'inžinierka'
if 'vek' in moj_slovnik:
    print(f"Eva má {moj_slovnik['vek']} rokov.")
moj_slovnik.update({'vek': 33, 'obľúbená farba': 'modrá'})
for k, v in moj_slovnik.items():
    print(f"{k}: {v}")