Python - začíname

0

Programovací jazyk Python (python.org) sa za posledný rok stal najdynamickejšie sa rozvíjajúcim jazykom a má viaceré predpoklady stať sa jednotkou v konkurencii omnoho silnejších hráčov.

Seriál rozdelíme na dva väčšie celky. Prvý bude obsahovať všeobecné základy programovania v jazyku Python. V druhom sa budeme venovať rozšíreným možnostiam jazyka Python, resp. riešeniu konkrétnych problémov.

Informácie o jazyku Python môžeme získať z extrémneho množstva informačných zdrojov – elektronických aj tlačených. V dnešnej dobe so všadeprítomným internetom nie je najmenší problém nájsť zdroje, ktoré hĺbkovo opisujú nielen samotný jazyk, ale aj jeho špecifiká a rozdiely v porovnaní s inými programovacími jazykmi. Ambíciou tohto seriálu je informácie roztrúsené na rôznych miestach zosumarizovať a podať v ucelenej podobe.

Určenie

Seriál o programovacom jazyku Python sme sa rozhodli pripraviť pre úplných začiatočníkov, a to najmä z dôvodu, že podľa viacerých štúdií si ho vyberajú mnohí začínajúci programátori. Python pre nich predstavuje „štartovací“ jazyk, na ktorom chcú postaviť základy svojej programátorskej kariéry. U týchto študentov, ktorí nemajú žiadne skúsenosti s programovaním, je nevyhnutné, resp. nanajvýš vhodné postupovať krok po kroku od nuly. Trendom modernej doby je však postupovať rýchlo a účelne. Preto bude seriál heslovitý, písaný v odsekoch a doslova preplnený rôznym druhom informácií.

Prečo práve Python?

Na jednej z internetových stránok venujúcich sa jazyku Python je uvedený zaujímavý slogan: „Naučte sa menej, no dosiahnite viac!“ Po prečítaní mnohých článkov týkajúcich sa jazyka Python usudzujeme, že práve tento výrok ho hodnotí najlepším možným spôsobom.

Je jasné, že moderný počítačový svet pozná množstvo programovacích jazykov, z ktorých každý je určený, resp. bol vytvorený na plnenie špecifického druhu úloh. Rovnako je to aj v prípade jazyka Python. Ten vznikol z dôvodu uľahčenia práce s operačným systémom Amoeba OS, no neskôr sa vyvinul na plnohodnotný programovací jazyk, ktorý sa dá s výhodou použiť v oblastiach strojového učenia (ML), umelej inteligencie (AI), internetu vecí (IoT), databázového manažmentu, sieťového vývoja, analýz, štatistík a v mnohých ďalších. Možno ho využiť rovnako na vývoj komplexných aplikácií, ako aj na ich rozširovanie. Jeho jednoduchosť podporuje produktivitu vývoja (RAD), kód je kratší a prehľadnejší, čo umožňuje efektívnejšie odstraňovať prípadné syntaktické chyby. V prípade sémantiky je situácia horšia. Python je dynamicky zapisovaný jazyk (dynamic name resolution) a od programátora nevyžaduje deklaráciu premenných. To na jednej strane skracuje programový kód, ale na druhej sťažuje hľadanie sémantických chýb. Tie sa prejavia až v čase interpretácie kódu a sú omnoho ťažšie odhaliteľné.

Vlastnosti Pythonu

Známa prednosť Pythonu je jeho bohatá štandardná knižnica, ktorá obsahuje množstvo preddefinovaných prvkov využiteľných pri programovaní. Štandardnú knižnicu dopĺňa množstvo doplnkových knižníc (modulov), zameraných na najrôznejšie oblasti využitia moderných počítačov. Vysokoúrovňový (high-level) jazyk Python má nasledujúce všeobecné charakteristiky:

1. open source všeobecne využiteľný (general purpose) jazyk,

2. jednoduchý, produktívny a efektívny,

3. ľahko manažovateľný, použiteľný, opakovane použiteľný a rozšíriteľný kód,

4. ľahko čitateľný kód – Python je syntaktický čistý jazyk s jednoduchou súpravou kľúčových slov a štrukturálnych znakov – bloky kódu oddeľuje s vyžitím prázdnych znakov (whitespace),

5. interpretovaný jazyk – umožňuje vykonanie kódu bez jeho kompilácie – dôsledkom je nižšia rýchlosť aplikácií,

6. multiplatformový jazyk, určený pre desktopy a servery – nie je vhodný pre mobilné platformy a na sieťový vývoj na strane klienta,

7. multiparadigmový jazyk – podporuje používanie viacerých programovacích štýlov vrátane štrukturálneho a objektovo orientovaného programovania (OOP),

8. skriptovací jazyk – použiteľný na strane servera, resp. na rozšírenie iných aplikácií,

9. využíva automatickú správu pamäte (garbage collection) – nevyžaduje správu pamäťového priestoru aplikáciou,

10. podporuje mnohé internetové protokoly a API, napr. HTML/XML, JSON, FTP, IMAP, WSGI...

Hneď v úvode musíme uviesť, že Python verzie 3.0 nie je úplne spätne kompatibilný s predošlými verziami. Ak teda budeme chcieť pracovať s kódom, ktorý bol napísaný pre staršie verzie Pythonu, budeme ho musieť prepísať, resp. upraviť podľa nových pravidiel.

Využitie jazyka Python

Python sa s výhodou používa najmä vo forme skriptovacieho jazyka, ale aj ako hlavný vývojový jazyk v rámci mnohých moderných, kvalitných a často využívaných aplikácií, ako sú napr. 3D editory Blender, Maya, GIMP, Inkscape, Scribus, Cinema 4D a 3D enginy Panda3D, Python-Ogre, manažér e-kníh Calibre, webové úložisko súborov Dropbox, balíčkovacie systémy IPS, PiP, Portage, YUM, downloader podcastov Juice, prehrávač multimediálnych súborov Totem, nástroj na zostavenie softvéru Scons a tracking chýb Roundup, Trac, ERP softvér ERP5, Odoo, Tryton, OpenERP, webový framework Django, Pyramid, Flask, Bottle, Google App Engine, UI framework Kivy, PyGTK, PyQT, Tkinter, vedecké a matematické nástroje SciPy, Pandas, IPython, graph-tool, Apache Singa, NumPy, Plotly, SymPy, ale aj hry, ako je napr. Battlefield, Civilization či World of Tanks.

Okrem open source využitia Pythonu je známe aj jeho komerčné nasadenie v rámci aplikácií, ako sú napr. Instagram, jazyk OpenMDAO, nástroje Google, Reddit, Yahoo!, YouTube atď.

Komunikácia s počítačom

Vo všeobecnosti možno povedať, že podstata programovania je riešiť problémy (problem solving). Pri riešení problémov s využitím počítačov s nimi musíme komunikovať, a to jazykom, ktorému rozumejú. Týmto jazykom je strojový kód, pomocou ktorého sú ovládané jednotlivé komponenty počítača. Najbližšie má k nemu tzv. nízkoúrovňový (low-level) jazyk, často nazývaný aj assembler, resp. jazyk symbolických inštrukcií. Programovať v assembleri je síce možné, ale dosť nepraktické, najmä v prípade veľkých projektov. Práve preto vznikli tzv. vysokoúrovňové (high-level) jazyky, ktoré pracujú s výrazmi zrozumiteľnými oveľa viac pre človeka ako pre počítač. Na to, aby týmto výrazom porozumel počítač, treba ich pretransformovať do strojového kódu. V podstate existujú dva najpoužívanejšie spôsoby, a to kompilácia alebo interpretácia.

 Program

Vysokoúrovňový jazyk Python využíva Python interpreter, a to v tzv. priamom (immediate) alebo skriptovacom (script) móde. Priamym módom sa rozumie zápis výrazov (expressions) do okna interpretera a ich okamžité vykonávanie po stlačení tlačidla Enter. Pri skriptovacom móde jednotlivé výrazy zapisujeme do súboru, ktorý sa nazýva skript. Ten je určený na zápis komplexnejšieho programu. Programom, často nazývaným aj zdrojovým kódom (source code), resp. algoritmom, sa rozumie sekvencia výrazov, pomocou ktorých riešime problém. Využívame pri tom funkcionalitu základných komponentov počítača, a to najmä CPU/GPU (na matematicko-logické výpočty) a vstupno-výstupné zariadenia (na interakciu medzi používateľom a PC). Pri tvorbe programu delíme riešenie komplexného problému na riešenie stále menších a menších subproblémov, až sa dostaneme na úroveň riešenia základných otázok typu výpočet, podmienka, vetvenie a opakovanie.

Marek Sopko

Všetky autorove články
Python seriál programovanie jazyk

Pridať komentár