Pokročílí 1: Úvod do predmetu, premenné, vstup a výstup¶
Na tomto voliteľnom predmete budeme preberať pokročilejšie témy z oblasti objektovo orientovaného programovania. Pôjdeme viac do hĺbky a ukážeme si pokročilejšie nástroje používané pri vývoji softvéru. Tak isto si ukážeme viacero praktických aplikačných využití.
Hlavným programovacím jazykom, ktorý budeme na tomto predmete používať je Python. Nakoľko ste s týmto jazykom už pracovali, očakávame od vás, že v ňom viete už ako tak programovať. V každom prípade prvé cvičenia budú venované opakovaniu.
Požiadavky na softvér a počítač sú podobné ako na klasických cvičeniach z predmetu objektovo orientované programovanie. V tomto predmete budete naviac potrebovať mať nainštalovaný programovací jazyk Python a IDE.
Jazyk Python¶
Python si nainštalujte z jeho oficiálnej stránky https://www.python.org/downloads/. Najnovšia verzia jazyka Python je verzia 3.13. Pri inštalácii v OS Windows zaškrtnite možnosť Add python.exe to PATH. Po úspešnej inštalácii si funkčnosť overte tak, že si otvorte nové okno konzoly a v príkazovom riadku spusťte príkaz python --version.
Semantic versioning¶
Populárny spôsobom v programovaní, ako označovať nové verzie softvéru a knižníc je použitie tzv. sémantického verzionovania. Príklad sémantickéj verzie je 2.1.4. Ide o číslovanie verzií programu vo formáte MAJOR.MINOR.PATCH, kde zväčšujeme číslo:
- MAJOR verzie, keď sme spravili zmeny, ktoré nie sú spätne kompatibilné,
- MINOR verzie, keď sme pridali funkcionalitu so zachovaním spätnej kompatibility,
- PATCH verzie, keď sme opravili chyby a ostala zachovaná spätná kompatibilita.
PyCharm - Python IDE¶
Pre komfortné programovanie v Pythone je vhodné, aby ste používali vývojové prostredie, po anglicky Integrated Development Environment (IDE). Na tomto predmete budeme pracovať vo vývojovom prostredí PyCharm od firmy JetBrains. Ide o najpopulárnejšie a najviac premakané vývojové prostredie pre jazyk Python.
Program PyCharm si stiahnite a nainštalujte z oficiálnej stránky https://www.jetbrains.com/pycharm/download. K dispozícii je bezplatná verzia a platená verzia Pro. Ako študenti SPŠE v Prešove máte jedinečnú možnosť používať platenú verziu úplne zadarmo. Pre aktiváciu si pozrite návod v prvom cvičení objektovo orientovaného programovania.
Učím sa s pomocou umelej inteligencie
Som študent strednej školy a učím sa používať jazyk Python
Kompilovaný vs. Interpretovaný jazyk¶
| Vlastnosť | Interpretovaný jazyk | Kompilovaný jazyk |
|---|---|---|
| Interaktivita | Dajú sa písať interaktívne, často sa používajú pre rôzne skripty | Bez interaktivity, pred spustením treba čakať, kým sa celý program skompiluje |
| Dynamickosť | Veľmi dynamický, program sa dá ľahko meniť aj počas jeho behu | Nedá sa upraviť, každá zmena sa musí nanovo skompilovať |
| Výkon programu | Pomalší, horšia správa pamäti | Vysoký výkon, efektívne využitie procesora |
| Spustenie programu | Všade tam, kde je nainštalovaný interpreter | Musíte získať skompilovanú verziu pre daný OS a procesor |
| Kontrola chýb | Počas behu programu | Počas kompilácie |
| Špeciálne využitie | Skripty, Web | Hry, Výkonný software |
| Príklad | Javascript, Python, PHP | C, C++, Rust, Swift |
Interaktívne programovanie¶
Nie všetky príkazy vo výsledku vyprodukujú nejakú hodnotu. V nasledujúcom príklade vytvoríme premennú a priradíme jej rôzne hodnoty.
Premenná
Premenná v Pythone je taká šípka s menom, ktorá ukazuje na nejakú hodnotu. Túto šípku potom môžeme kedykoľvek zmeniť a ukázať na inú hodnotu.
Presnejšie povedané, premenná má názov a ukazuje na nejaký objekt uložený v pamäti počítača. To, na akú vec bude ukazovať, vieme počas programu kedykoľvek meniť. Celkom odborne povedané, premenná je pomenovaná referencia na objekt.
Keďže je Python dynamicko typovaný jazyk, premenné nemajú žiadny dátový typ a vieme do nich priradzovať hodnoty rôznych typov. To je zásadný rozdiel v porovnaní s jazykom Java, kde každá premenná má svoj dátový typ a kompilátor kontroluje, či to program dodržiava.
Názov premennej musí začínať písmenom alebo _, a môže obsahovať len písmená, číslice a _.
- Príkaz priradenia premennej nevracia žiadnu hodnotu, preto sa v interaktívnom móde po zadaní takého príkazu nič nezobrazí. Premenná sa však vytvorí a môžeme ju v ďalších príkazoch použiť.
- Ak napíšeme iba premennú, nič sa do nej nepriradí a takýto príkaz vráti jej aktuálnu hodnotu
- Hodnotu premennej zmeníme a nasledujúce príkazy už budú pracovať s novou hodnotou
Ak chceme interaktívny mód opustiť, do príkazového riadku napíšeme exit a stlačíme Enter
Python skripty¶
Interaktívne programovanie má svoj význam pri oprave chýb za behu programu alebo na jednoduché vyskúšanie nejakej vecičky. Pre bežné použitie je lepšie vytvoriť tzv. skript.
Skript je textový súbor, do ktorého napíšeme kód nášho programu. Takýto skript potom vieme dať Pythonu a ten potom skript spustí a program sa vykoná.
Pre vytváranie skriptu budeme používať IDE PyCharm. Ak už máme otvorený projekt, do hlavného okna PyCharm sa môžeme dostať pomocou voľby File - Close Project.
Z hlavného okna PyCharmu vyberieme možnosť New Script. Otvorí sa nám súbor script.py, v ktorom budeme mať vzorový kód. Ten môžeme kľudne nahradiť svojim.
Ak chceme v PyCharme spusiť aktuálne otvorený skript, stlačíme Shift+F10 alebo klikneme na zelenú šípku play v hornej časti aplikácie.
Nový skript v prostredí PyCharm
Po spustení skriptu sa nám v dolnej časti aplikácie objaví konzolové okno programu, v ktorom vidíme všetko, čo náš program vypísal a pomocou ktorého môžeme do nášho programu vložiť aj vstup z klávesnice.
Spúšťanie skriptov bez IDE
Pre reálne použitie sa skripty nepúšťajú cez IDE, ale vieme ich spustiť priamo cez príkazový riadok. Stačí uviesť názov súboru. Príklad spustenia skriptu python script.py
Nasledujúce príklady vložte do skriptu a spusťte v prostredí PyCharm IDE
Štandardný výstup¶
Spustenie skriptu v Pythone prebieha ináč ako pri interaktívnom programovaní. Príkazy v skripte sa vykonávajú riadok po riadku. Pri skripte sa na rozdiel od interaktívneho módu nevypisuje výsledok príkazu, ktorý sa vykonal. Ak chceme do konzoly vypísať nejakú hodnotu, musíme na to použiť funkciu print()
Príklad 1.1: Použitie výstupu
Štandardný vstup¶
Tak ako vieme do konzoly niečo vypísať, vieme aj požiadať o nejaký vstup od užívateľa. Nasledujúci príklad ukáže použitie vstupu pomocou funkcie input().
Príklad 1.2: Použitie vstupu
- Funkcia
input()počká, kým užívateľ zadá vstup z klávesnice, stlačí Enter a potom táto funkcia vráti reťazec znakov (string)
Upozornenie
Po spustení tohto programu v PyCharm je niekedy nutné myškou kliknúť do okna konzoly, a až potom zadávať vstup z klávesnice.
Formátované reťazce, f-stringy¶
Ak pred reťazec vložíme znak f, môžeme do tohto reťazca pomocou zložených zátvoriek vložiť premenné a nemusíme krkolome spájať reťazce a premennými.
Príklad 1.3: Použitie vstupu
Učím sa s pomocou umelej inteligencie
Som študent strednej školy, učím sa Python. Napíš 3 nie zložité príklady na:
Zhrnutie cvičenia¶
- Nainštalovať si Python 3.13 zo stránky https://www.python.org/downloads/
- Overiť si, či Python beží správne pomocou
python --version
- Overiť si, či Python beží správne pomocou
- Nainštalovať si vývojové prostredie PyCharm
- Aktivovať si školskú licenciu pre bezplatné použitie verzie Pro
- Vedieť, čo je sémantické verzionovanie
- Číselná verzia programu vo formáte MAJOR.MINOR.PATCH
- MAJOR sa inkrementuje, keď sme spravili zmeny, ktoré nie sú spätne kompatibilné,
- MINOR sa inkrementuje, keď sme pridali funkcionalitu so zachovaním spätnej kompatibility,
- PATCH sa inkrementuje, keď sme opravili chyby a ostala zachovaná spätná kompatibilita.
- Vedieť rozdiel medzi interpretovaným a kompilovaným jazykom
- Interpretovaný je dynamický a interaktívny
- Kompilovaný je výkonnejší
- Interpretovaný program potrebuje mať nainštalovaný interpreter
- Kompilovaný program beží iba pre jednu konkrétnu verziu OS a procesora
- Python je interpretovaný
- Vedieť spustiť Python v interaktívnom móde
- Otvoriť konzolu a spustiť príkaz
python
- Otvoriť konzolu a spustiť príkaz
- Vedieť vytvoriť a spustiť skript
- Pomocou
New Scriptv programe PyCharm - Spustím pomocou
SHIFT-F10
- Pomocou
- Čo je premenná
- Premenná v Pythone je šípka (referencia) s menom, ktorá ukazuje na nejakú hodnotu (objekt)
- To, na akú vec bude ukazovať, vieme počas programu kedykoľvek meniť.
- Premennú vytvárame a meníme pomocou operácie priradenia, napr.
a = 10 - Premenná v Pythone nemá dátový typ, môže ukazovať na hocičo
- Čo je konštanta
- Konštanta je ako premenná, ale jej hodnota sa nemá meniť
- Pre názov konštanty sa používajú veľké písmená
- Je to iba dohoda, Python nekontroluje, či konštantu meníme
- Štandardný vstup a výstup
- Do konzoly vypíšeme pomocou funkcie
print() - Z klávesnice načítame pomocou funkcie
input()
- Do konzoly vypíšeme pomocou funkcie
- Formátovaný reťazec, f-string
- Umožňuje nám vkladať do reťazca premenné
- Príklad:
f"Ahoj {meno} z obce {obec}, rád ťa tu vidím!"
Poznámky do zošita
V zošite je potrebné mať napísané aspoň tieto poznámky:
Učebnica na stránke https://oop.wagjo.com/
JAZYK PYTHON
Vlastnosti:
- interpretovaný jazyk
- všeobecné použitie
- dynamické typovanie
Použitie:
- umelá inteligencia
- strojové učenie
- dátová analytika a dátová veda
Novšie verzie sú často nekompatibilné so starými a je nutná migrácia
SEMANTIC VERSIONING
Vytváranie verzií vo formáte MAJOR.MINOR.PATCH
Používané napr. v knižniciach v Javascripte, Pythone a Jave.
Príklad: 3.13.7, 1.0.0
- MAJOR sa zvýši: veľké a nekompatibilné zmeny
- MINOR sa zvýši: nová funkcionalita, spätne kompatibilná
- PATCH sa zvýši: oprava chýb, spätne kompatibiliná
KOMPILOVANÝ VS INTERPRETOVANÝ JAZYK
Interpretovaný jazyk:
- interaktívny, skriptovací, pomalší
- potrebuje interpreter
- Python, PHP, Javascript
Kompilovaný jazyk:
- rýchly, program spustím až keď ho skompilujem
- chyby nájde ešte pred spustením programu
- špeciálna verzia pre každý typ OS a CPU
- C, C++, Rust, Swift
Java je hybrid, kód sa skompiluje do bytekódu a ten sa interpretuje cez JVM
INTERAKTÍVNE PROGRAMOVANIE
V konzole spustím program python.
Zadávam príkaz a python mi vypíše jeho výsledok.
Vhodné na skúšanie vecí a opravu chýb.
SKRIPTY
Skript je súbor s príponou .py, v ktorom je kód programu.
Skript vytvorím pomocou PyCharm. Spúšťam pomocou SHIFT-F10.
PREMENNÁ
Python premenná je pomenovaná referencia na objekt uložený v pamäti počítača.
Vytvárame a meníme pomocou operácie priradenia, napr. a = 10.
Premenná v Pythone nemá dátový typ, môže ukazovať na hocičo.
KONŠTANTA
Konštanta je ako premenná, ale jej hodnota sa nemá meniť.
Pre názov konštanty sa používajú veľké písmená.
Je to iba dohoda, Python nekontroluje, či konštantu meníme.
VSTUP A VÝSTUP
- do konzoly vypíšeme pomocou funkcie print()
- z klávesnice načítame pomocou funkcie input()
F-STRING
Umožňuje nám vkladať do reťazca premenné.
Príklad: f"Ahoj {meno} z obce {obec}, rád ťa tu vidím!"
Skúšanie a kontrola vedomostí
Na ďalšej hodine budeme kontrolovať nasledovné veci:
- Správne nainštalovaný Python 3.13
- Správne nainštalovaný program PyCharm
- Zapísané poznámky z hodiny vo vašom zošite
Ústne skúšanie alebo krátka 5-minútovka:
- Čo je sémantické verzionovanie, popíš na príklade
- Aké sú rozdiely medzi interpretovaným a kompilovaným jazykom?
- Čo je premenná, uveď príklad kódu
- Čo je konštanta, ako sa v Pythone zapisuje
- Ako vypíšeme niečo do konzoly
- Ako načítame vstup z klávesnice
- Čo je f-string, na čo sa používa, uveď príklad
Snaží sa o jednoduchú syntax, aby s jazykom vedel pracovať aj nováčik resp. aby jazyk pre svoje potreby vedeli používať aj ne-programátori. Python v sebe obsahuje všetko, čo k základnému programovaniu potrebujete. Nemusíte tak hľadať a inštalovať nejakú knižnicu. Tento prístup je reprezentovaný jeho mottom "Batteries included".

