Python: Porovnání verzí
Řádek 15: | Řádek 15: | ||
==Implementace Pythonu== | ==Implementace Pythonu== | ||
− | ===[[Brython]] | + | ===Brython=== |
− | + | [[Brython]] je transpřekladač z Pythonu do [[JavaScript|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). <ref name=":2">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</ref> | |
− | ===[[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í. <ref name=":cpython">FALTÝNEK, Lukáš. Python není krajta. Linux EXPRES [online]. 2007 [cit. 2020-10-13]. Dostupné z: https://www.linuxexpres.cz/praxe/python-neni-krajta</ref> | + | ===CPython=== |
+ | [[CPython]] je 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í. <ref name=":cpython">FALTÝNEK, Lukáš. Python není krajta. Linux EXPRES [online]. 2007 [cit. 2020-10-13]. Dostupné z: https://www.linuxexpres.cz/praxe/python-neni-krajta</ref> | ||
+ | |||
===Cython=== | ===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. | + | [[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 | Výhody Cythonu | ||
Řádek 29: | Řádek 31: | ||
===IronPython=== | ===IronPython=== | ||
− | IronPython je implementace Pythonu běžící na .NET (Mono) platformě. Lze jej přímo využívat ve všech jazycích platformy .NET. Tvůrcem IronPythonu je Jim Hugunin. První verze byla vydána v roce 2006. Ironpythonu nepodporuje virtuální prostředí. Implementace IronPython je vyvíjena firmou Microsoft. | + | [[IronPython]] je implementace Pythonu běžící na .NET (Mono) platformě. Lze jej přímo využívat ve všech jazycích platformy .NET. Tvůrcem IronPythonu je Jim Hugunin. První verze byla vydána v roce 2006. Ironpythonu nepodporuje virtuální prostředí. Implementace IronPython je vyvíjena firmou Microsoft. |
===Jython=== | ===Jython=== | ||
− | + | [[Jython]] je 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. | 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. | ||
Řádek 41: | Řádek 43: | ||
===PyPy=== | ===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. | + | [[PyPy]] je 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=== | ===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ů. <ref>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/</ref> 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). <ref>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</ref> | + | [[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ů. <ref>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/</ref> 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). <ref>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</ref> |
===RustPython=== | ===RustPython=== | ||
− | + | [[RustPython]] je implementace Pythonu 3 v jazyce Rust. Tato implementace je označena jako vývojová a nevhodná pro produktivní nasazení. Implementuje CPython 3.5. | |
http://howto.py.cz/cap02.htm | http://howto.py.cz/cap02.htm |
Verze z 14. 10. 2020, 12:34
![]() |
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
Brython je 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
CPython je 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
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
IronPython je implementace Pythonu běžící na .NET (Mono) platformě. Lze jej přímo využívat ve všech jazycích platformy .NET. Tvůrcem IronPythonu je Jim Hugunin. První verze byla vydána v roce 2006. Ironpythonu nepodporuje virtuální prostředí. Implementace IronPython je vyvíjena firmou Microsoft.
Jython
Jython je 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
PyPy je 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
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
RustPython je 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č