Python
Na této stránce se právě pracuje. Prosím needitujte tuto stránku, dokud na ní zůstává tato šablona. Předejdete tak editačnímu konfliktu. Jestliže uběhla od poslední editace doba alespoň dvou dnů, neváhejte tuto šablonu odstranit. |
Python je vysokoúrovňový skriptovací programovací jazyk, který v roce 1991 navrhl Guido van Rossum. Nyní patří k jedním z nejpopulárnějších jazyků. Používá efektivní vysokoúrovňové datové typy, přičemž jednoduše a elegantně řeší otázku objektově orientovaného programování. Jeho syntaxe a dynamické typy spolu s interpretováním kódu dotváří pověst ideálního nástroje pro psaní skriptů a rychlý vývoj aplikací ( Rapid Application Development,RAD). Samotný interpretr jazyka je spustitelný na velkém množství platforem včetně Linuxu, Windows, MacOS a DOS.
Zdrojové kódy interpretru Pythonu a standardních knihoven jsou volně ke stažení z domovské stránky Pythonu(http://www.python.org/)a je možné je dále volně modifikovat a distribuovat.
Prostředí jazyka je snadno rozšiřitelné pomocí funkcí a datových typů napsaných v jazycích C nebo C++. Python lze také použít jako skriptovací jazyk pro aplikace v jiných jazycích. [1]
Programy v Pythonu jsou velice kompaktní a snadno pochopitelné. Zároveň jsou typicky mnohem kratší než ekvivalentní kód implementovaný v C nebo C++a to z mnoha důvod:
- vysokoúrovňové datové typy umožňující rychlé a komplexní operace v jediném výrazu;
- seskupování výrazů se děje pomocí odsazení narozdíl od používání otevírací a uzavírací složené závorky v C a C++;
- není nutné deklarovat proměnné a argumenty funkcí, jazyk dokonce nerozlišuje ani jejich typ[1]
Syntaxi Pythonu lze považovat za jednoduchou na pochopení, díky čemuž pak lze dosahovat při psaní programů vysoké efektivity a rychlosti. Zároveň tato syntaxe nutíkpsaní pečlivě strukturovaného kódu, což se ve výsledku pozitivně odráží jak na jehopřehlednosti, tak na čitelnosti a celkové eleganci hotových programů. Syntaxe Pythonu bývá obvykle velice úsporná. Jedná se o tzv. „case sensitive“synatxi, jež rozlišuje malá a velká písmena. Python eliminuje používání závorek na nezbytné minimum. Příkazy jsoudojednoho bloku seskupeny na základě shodného odsazení, tzn. shodného počtu mezerči tabulátorů tytopřitom není možné kombinovat. Příkaz, za kterým následuje vnořený blok, je pak obvykle uvozen dvojtečkou. Následující ukázky výše zmíněné ilustrují (nejedná seospustitelný kód), přičemž porovnávají vytváření bloků v Pythonu a Pascalu. [2]
Obsah
Implementace Pythonu
Brython
Jedná se o transpřekladač z Pythonu do JavaScriptu, přičemž samotný překlad (resp. přesněji řečeno transpřeklad) probíhá na pozadí, což znamená, že přímo v kódu webové stránky je umístěn (či načítán) kód v Pythonu. Výhodou Brythonu je, že se jakékoli úpravy ihned projeví v aplikaci po znovunačtení stránky (F5). [3]
CPython
Referenční implementace interpretu programovacího jazyka Pythonu. Je napsaná v jazyce C a v Phytonu. Interpret, který spouštíme příkazem python3. Je rychlý, stabilní a poskytuje širokou skupinu volitelných rozšíření. CPython je vyvíjen jako open-source projekt. Řízen je PSF a je dostupný pod svobodnou licencí. [4]
Cython
je C rozšíření jazyka Python a transkompiler. Cython překládá zdrojový Python kód do C kódu, který se následně standardním překladačem překládá do binárního kódu. Výsledkem je tedy nativní program stejně jako u RPythonu.
Výhody Cythonu
- Práce s externími knihovnami C může být rychlejší (umožní mluvit přímo se základními knihovnami, aniž by tomu bránil Python)
- Umožňuje použít správu paměti C i Python
- Cython C kód může těžit z uvolnění GIL
- může použít syntaxi hinting typu Python https://cze.small-business-tracker.com/what-is-cython-python-speed-c-397206
IronPython
Jython
Je to implementace skriptovacího jazyka Python, napsaná v 100% čisté Javě, která je použitelná v prostředí libovolného virtuálního stroje JVM (Java Virtual Machine). V prostředí Jythonu můžete psát programy, které mohou jednoduše komunikovat s kódem napsaným v Javě.
Syntaxe Jythonu se velmi podobá způsobu, jakým se zapisují kousky kódu, když chcete někomu sdělit určitou myšlenku, či postup. Jython používá zarovnání pro vyjádření jednotlivých úseků kódu, což vede k jeho čitelnosti. Způsob zápisu programu není tedy věcí programátorského stylu autora, ale věcí syntaxe. V Jythonu je možné jednotlivé programy organizovat do malých modulů, které lze znovu využít i v jiných modulech. Tyto moduly mohou obsahovat jak vlastní programy, tak pouze informace používané k vlastní organizaci modulů do různých knihoven.
Jython je objektově orientovaný nástroj. Umožňuje vám psát programy s využitím objektově orientovaného přístupu, ale nenutí vás k tomu. V Jythonu lze použít i styly vlastní funkcionálnímu programování (jako například v Lispu,...). Třídy, instance, moduly a funkce využívají týž jednoduchý koncept jmenných prostorů a mapování mezi názvy proměnných a jejich hodnota
Na rozdíl od Javy, není nutné zdrojový kód explicitně kompilovat, aby byl spustitelný. To zvyšuje programátorskou efektivitu. [5]
PyPy
alternativní implementace Pythonu napsaná v RPythonu. PyPy se pyšní 6x větší rychlostí kódu než standardní Python interpety. Své rychlosti dosahuje díky použití JIT (Just In Time) kompilátoru.
RPython
získal své jméno ze sousloví „Restricted Python“. Není interpretován, ale skutečně překládán do objektového kódu a z výsledku se vytváří spustitelná aplikace. Celý proces zpracování je poměrně komplikovaný a zdlouhavý. Typicky používá pro psaní interpretrů dalších programovacích jazyků. [6] RPython je určen pro překlad programů napsaných v podmnožině programovacího jazyka Python do nativního kódu, ať již se jedná o přímo spustitelný kód či o dynamicky linkovanou knihovnu (.so, .dll). [7]
RustPython
Implementace Pythonu 3 v jazyce Rust. Tato implementace je označena jako vývojová a nevhodná pro produktivní nasazení. Implementuje CPython 3.5.
Zdroje
Reference
- ↑ 1,0 1,1 ŠVEC, Jan. Učebnice jazyka Python (aneb Létající cirkus). [online]. 2002 [cit. 2020-10-13]. Dostupné z: http://macek.sandbox.cz/texty/python-tutorial-cz/python-tutorial-cz-a4-2.2.pdf.
- ↑ KOTEK, Lukáš. Výuka algoritmizace a programování se zaměřením na programovací jazyk Python [Algorithms and Programming Education with a focus on the programming languagePython]. Praha, 2012. 128 s. Diplomová práce. Univerzita Karlova v Praze, Pedagogická fakulta, Katedra informačních technologií a technické a informační výchovy. Vedoucí diplomové práce Ing. Jaroslav Novák, Ph.D.
- ↑ TIŠNOVSKÝ, Pavel. Brython aneb použití jazyka Python ve skriptech přímo v prohlížeči. Root.cz [online]. 2019 [cit. 2020-10-13]. Dostupné z: https://www.root.cz/clanky/brython-aneb-pouziti-jazyka-python-ve-skriptech-primo-v-prohlizeci/#k07
- ↑ FALTÝNEK, Lukáš. Python není krajta. Linux EXPRES [online]. 2007 [cit. 2020-10-13]. Dostupné z: https://www.linuxexpres.cz/praxe/python-neni-krajta
- ↑ HAVLÍČEK, Štefan. Jython I: Seznamte se ..... Java portál [online]. 2008 [cit. 2020-10-14]. Dostupné z: http://www.java.cz/article/8312
- ↑ TIŠNOVSKÝ, Pavel. RPython: překvapivě výkonný dialekt Pythonu, na němž je založen PyPy. Root.cz [online]. 2018 [cit. 2020-10-14]. Dostupné z: https://www.root.cz/clanky/rpython-prekvapive-vykonny-dialekt-pythonu-na-nemz-je-zalozen-pypy/
- ↑ TIŠNOVSKÝ, Pavel. RPython vs Cython aneb dvojí přístup k překladu Pythonu do nativního kódu. Root.cz [online]. 2018 [cit. 2020-10-14]. Dostupné z: https://www.root.cz/clanky/rpython-vs-cython-aneb-dvoji-pristup-k-prekladu-pythonu-do-nativniho-kodu/#k10
Doporučená literatura
- Seitz, Justin. Black hat Python: Python programming for hackers and pentesters [online]. San Francisco, California: No Starch Press, 2015, ©2015 [cit. 2020-10-13]. ISBN 978-1-59327-655-3. Dostupné z: http://ebookcentral.proquest.com/lib/natl-ebooks/detail.action?docID=1931622.
- Galea, Alex. Beginning data analysis with python and Jupyter: use powerful industry-standard tools to unlock new, actionable insight from your existing data [online]. Birmingham: Packt Publishing, [2018], ©2018 [cit. 2020-10-13]. ISBN 978-1-78953-465-8. Dostupné z: https://ebookcentral.proquest.com/lib/natl-ebooks/detail.action?docID=5419744.
- Coelho, Luis Pedro. Building machine learning systems with Python: get more from your data through creating practical machine learning systems with Python [online]. Second edition. Birmingham, England: Packt Publishing, 2015, ©2015. Community Experience Distilled [cit. 2020-10-13]. ISBN 978-1-78439-288-8. Dostupné z: http://ebookcentral.proquest.com/lib/natl-ebooks/detail.action?docID=2000929.
- Chollet, François. Deep learning v jazyku Python: knihovny Keras, Tensorflow. Překlad Rudolf Pecinovský. První vydání. Praha: Grada Publishing, 2019. 328 stran. Knihovna programátora. Myslíme v. ISBN 978-80-247-3100-1.
- Karkera, Kiran R. Building probabilistic graphical models with Python: solve machine learning problems using probabilistic graphical models implemented in Python with real-world applications [online]. Birmingham, [England]: Packt Publishing, 2014, ©2014. Community Experience Distilled [cit. 2020-10-13]. ISBN 978-1-78328-901-1. Dostupné z: https://ebookcentral.proquest.com/lib/natl-ebooks/detail.action?docID=1688634.
Související články
Počítač
Software
PHP
NodeXL: Programovací jazyky Ruby a C++ očima Twitter diskuzí
Klíčová slova
Phyton, programovací jazyk, programování, počítač