Python pro ekonomy Seminář 1 Ing. et Ing. Michal Halaška Python pro ekonomy •Instalace Pythonu •Interpretr a kompilátor programovacích jazyků •Ukázka programu v Pythonu •Představení JupyterLab • Obsah semináře Python pro ekonomy csvukrs •Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači •Komunikační nástroj mezi programátorem a počítačem, který program interpretuje technickými prostředky •Algoritmus je přesný návod nebo postup, kterým lze vyřešit daný typ úlohy Programovací jazyk Python pro ekonomy csvukrs •Programovací jazyk s větší mírou abstrakce •Přiblížení zápisu zdrojového kódu tomu, jak problémy zpracovává svým myšlením člověk •Obvykle kratší a lépe čitelný •Programy zapsané ve vyšších programovacích jazycích jsou překládány do nižších jazyků Vysokoúrovňový jazyk Python pro ekonomy csvukrs Vysokoúrovňový jazyk Python pro ekonomy High level languages vs Low level languages (Infographics) | eduCBA C Tutorials - Computer Languages in C Programming Language csvukrs •Proces od návrhu řešení problému pomocí výpočetní techniky ke spustitelnému počítačovému programu •Analýza problému → pochopení problému →nalezení algoritmu → zápis zdrojového kódu Programování Python pro ekonomy csvukrs •Programovací jazyk, u něhož je pro spuštění programu nezbytný jeho zdrojový kód a zvláštní program zvaný interpret, který zdrojový kód provádí •Snadnost provádění úprav, snažší hledání a odstraňování chyb, přenositelnost programu na jinou platformu •Nutnost mít interpret programovacího jazyka, pomalejší běh Interpretovaný jazyk Python pro ekonomy csvukrs •Speciální počítačový program •Umožňuje vykonávat zápis jiného programu v jeho zdrojovém kódu ve zvoleném programovacím jazyce •Program není nutné převádět do strojového kódu cílového procesoru •U Pythonu je zdrojový kód přeložen do efektivnějšího mezikódu, který je následně spuštěn Interpret Python pro ekonomy csvukrs •Programovací jazyk, pro nějž je potřeba zdrojový kód v něm napsaný nejprve přeložit pomocí překladače do strojového kódu a až poté je možné program spustit •Rychlejší, optimalizace kódu, menší závislost na prostředí, bezpečnost a stabilita •Dlouhý čas překladu, menší flexibilita, horší přenositelnost, složitější opravy Kompilovaný jazyk Python pro ekonomy csvukrs •Slouží pro překlad algoritmů zapsaných ve vyšším programovacím jazyce do jazyka nižšího •Lexikální analýza, syntaktická analýza, sémantická analýza, optimalizace kódu, generování kódu, linkování Překladač Python pro ekonomy csvukrs •Python byl pojmenován podle komediální skupiny Monty Python, kteří pomocí skečů ovlivnili internetovou subkulturu napříkald slovem spam Monty Python Python pro ekonomy The 25 Funniest Monty Python Movie Moments csvukrs •Základní programovací styl •Paradigmata se liší v pojmech a abstrakcích, které tvoří jednotlivé prvky programu (objekty, funkce, omezení, aj.) a krocích, ze kterých se výpočet skládá (přiřazení, vyhodnocení, pokračování, datové toky, atd.) Paradigma Python pro ekonomy csvukrs •Program je složen z objektů, které mají vlastnosti (data) a chování (funkce/metody) •Firma může být objekt. Má vlastnosti (název, počet zaměstnanců, obrat) a chování (najmout zaměstnance, zaplatit daně) Objektově orientované paradigma Python pro ekonomy csvukrs •Program se nepřekládá dopředu do spustitelného souboru, ale spouští se řádek po řádku interpretem •V pythonu napíšeme print(‘Ahoj’) a hned vidíme výsledek, aniž bychom museli program kompilovat Interpretativní programování Python pro ekonomy csvukrs •Program se skládá z funkcí, které dostanou vstupy a vrátí výstupy – bez vedlejších efektů •Máme seznam čísel představující zisky firem a chceme je převést na daně – použijeme funkci, která každé číslo přepočítá Funkcionální programování Python pro ekonomy csvukrs •Zařízení vykonávající požadované úkoly na základě povelů •Automatické vykonávání zajišťuje procesor (řídící jednotka, CPU), který řídí operace s jednolivými částmi počítače •Povely jsou v elektronické formě v podobě tzv. instrukcí procesoru •Instrukce jsou typicky elementární operace, které dokáže CPU vykonat v co nejkratším čase •Jde o číselné kódy přináležející různým operacím, konkrétní podoba závisí na druhu CPU Počítač Python pro ekonomy csvukrs •Pro uložení povelů pro práci počítače stejně tak jako dat, se kterými počítač pracuje, slouží počítačová paměť •Vybrané části paměti mohou být určeny jen ke čtení počítače (read-only memory - ROM) •Univerzálnost použití počítačů ale vyžaduje aby významná část paměti mohla sloužit jak k zapisování tak čtení (RAM) •Vstup a výstup dat obstarávají vám známá zařízení, jako jsou klávesnice, displeje, tiskárny... Počítač Python pro ekonomy csvukrs •Počítač pracuje s binárními daty (0 a 1) •Základní jednotka informace = bit, 8 bitů = byte •Paměť ukládá hodnoty, které procesor zpracovává •Instrukce se zpracovávají postupně podle instrukční sady CPU •Vysoký výkon umožňuje: –Více jader procesoru → více operací současně –Využití speciálních výpočetních jednotek (např. GPU) –Komunikace přes rychlé datové sítě Počítač Python pro ekonomy csvukrs •Výkonné počítače (servery) → zpracování velkého množství dat pro více uživatelů •Uživateli se služby poskytují přes software a síťové připojení •Operační systém (OS) řídí běh programů a přiděluje prostředky •Bezpečnostní opatření: některé činnosti provádí jen OS, uživatel má omezená oprávnění •Kromě výpočtů počítač ukládá a zpracovává i další soubory: –Texty, obrázky, zvuk, video, vědecká a kancelářská data Počítačové systémy a využití Python pro ekonomy csvukrs • • • •program hello • print *, "Hello, World!" •end program hello Hello world v jazyce Fortran Python pro ekonomy csvukrs • •#include • •int main() { • printf("Hello, World!\n"); • return 0; •} Hello world v jazyce C Python pro ekonomy csvukrs • • •public class HelloWorld { • public static void main(String[] args) { • System.out.println("Hello, World!"); • } •} Hello world v jazyce Java Python pro ekonomy csvukrs • • • • •print("Hello, World!") Hello world v jazyce Python Python pro ekonomy csvukrs •Vysokoúrovňový interpretovaný programovací jazyk •Patří mezi multiparadigmatické jazyky •Nabízí dynamickou kontrolu datových typů •Vyvíjen jako open source •Dostupný pro většinu běžných platforem (Unix, MS Windows, macOS, Android) • Python Python pro ekonomy csvukrs Proč Python? Python pro ekonomy Chart: Python Remains Most Popular Programming Language | Statista Percentages of programming languages in titles of r/programming [OC] : r/dataisbeautiful csvukrs Proč Python? Python pro ekonomy csvukrs •Jednoduchost a čitelnost •Ekosystém knihoven a frameworků •Univerzálnost •Velká komunita a podpora •Platformní nezávislost Výhody Pythonu Python pro ekonomy csvukrs •Pomalejší výkon •Vyšší nároky na paměť •Ne vždy ideální pro mobilní aplikace •Dynamické typování Nevýhody Pythonu Python pro ekonomy csvukrs • •V jakých oblastech lze Python využít? Samostatný úkol Python pro ekonomy csvukrs •Jděte na oficiální web Pythonu: –https://www.python.org/downloads/windows/ •Stáhněte požadovanou stabilní verzi (Python 3.X) •Spusťte stažený instalační soubor –Důležité je zaškrtnout „Add Python to PATH“ (aby šel spouštět z příkazového řádku) •Po nainstalování otevřete příkazový řádek a vložte příkaz: –python --version –py --version Instalace Pythonu (Windows) Python pro ekonomy csvukrs •Předpoklady –Python 3 (python --version) –Správce balíčků Pythonu Pip (pip --version) •Virtuální prostředí –Doporučeno mít vlastní pro každý projekt •Instalace JupyterLab –pip install jupyterlab •Spustění JupyterLab –jupyter lab •Aktualizace JupyterLab –pip install –upgrade jupyterlab JyputerLab Python pro ekonomy csvukrs • •Data science a strojové učení – snadná práce s daty, vizualizace, experimenty •Výuka programování – lze vidět okamžitý výsledek kódu •Výzkum a prototypování – rychlé testování algoritmů •Dokumentace – kombinace kódu, grafů a textu (Markdown, LaTex) Využití JyputerLab Python pro ekonomy csvukrs • •Jednoduchá instalace •Podpora mnoha jazyků pomocí tzv. kernels •Interaktivní grafy a práce s daty •Velká komunita a množství rozšíření Výhody JyputerLab Python pro ekonomy csvukrs • •Není ideální pro velké softwarové projekty (spíše pro prototypování a analýzy) •Vyžaduje prohlížeč a běžící server (není to klasická aplikace) •Při velmi velkých datech může být pomalejší Nevýhody JyputerLab Python pro ekonomy csvukrs •python -m venv nazevprostredi •.\nazevprostredi\Scripts\activate •pip install ipykernel •pip list •python -m ipykernel install -name=nazevprostredi •jupyter kernelspec list •jupyter kernelspec uninstall nazevprostredi •pip install jupyterlab Práce s JyputerLab Python pro ekonomy csvukrs • • •V jazyce Python naprogramujte Euklidův algorimus Samostatný úkol Python pro ekonomy csvukrs