Stránka ve výstavbě
Inkwell icon - Noun Project 2512.svg 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. Inkwell icon - Noun Project 2512.svg

Python

Je to 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]

Syntaxe

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í k psaní pečlivě strukturovaného kódu, což se ve výsledku pozitivně odráží jak na jeho př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ů tyto přitom není možné kombinovat. Příkaz, za kterým následuje vnořený blok, je pak obvykle uvozen dvojtečkou. [2]

Z významných grafických rozhraních je v Pythonu možno použít Tkinter, wxPython, PyGTK, PyQt. Tkinter je tenká pythonovská vrstva postavená nad grafickou knihovnou Tk/Tcl. WxPython je multiplatformní GUI toolkit založený na C++ frameworku wxWidgets, který pro vykreslování využívá obvyklé součásti hostitelského systému. PyGTK, jak název evokuje, používá grafickou knihovnu GTK a PyQT pak knihovnu QT. Pro vývoj her pak lze jako grafické rozhraní doporučit PyGame. PyGame je napsáno nad výbornou knihovnou SDL.

Pythonu zapsaný kód, na dvou klasických příkladech, Hello World a příkladu pro výpočet faktoriálu:

Příklad 1: print "Hello, World!"

Příklad 2: def factorial(x):

       if x <= 0:
               return 1
       else:
               return x * factorial(x - 1) [3]

Proměnné

Promněnná je jméno, které odkazuje na nějakou hodnotu. Hodnota proměnné se může měnit – ostatně se taky jmenuje „proměnná“. Python je dynamicky typovaný programovací jazyk. To znamená, že v programu nemusíme uvádět typ proměnné, interpret jazyka jej určí automaticky.

Názvy proměnných: mohou obsahovat písmena, čísla a znak podtržítko. Nesmí obsahovat mezeru a nesmí začínat na číslo. Rozlišují se malá a velká písmena. V Pythonu je zvykem psát jména proměnných malými písmeny.

Vytvoření a aktualizace proměnné Vytvoříme tak, že do ní přiřadíme hodnotu. Hodnotu můžeme následně aktualizovat. Proměnná drží poslední hodnotu, která do ní byla přiřazena. Pro přiřazení používáme rovnítko:

x = 20 # vytvoření proměnné x a přiřazení hodnoty 20

y = 5 # vytvoření proměnné y a přiřazení hodnoty 5

x = 10 # změna hodnoty x na 10

print(x, y) # vypíše 10 5

Aritmetické operace S čísly můžeme provádět základní aritmetické operace, zápis je stejný jako na běžných kalkulačkách (+, -, /, *). Python také nabízí podporu pro operace celočíselné dělení (//), dělení se zbytkem (%) a umocňování (**) – tyto operace se při programování často hodí.

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). [4]

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í. [3]

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

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.

http://howto.py.cz/cap02.htm

Zdroje

Reference

  1. 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.
  2. 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.
  3. 3,0 3,1 FALTÝNEK, Lukáš. Python není krajta. Linux EXPRES [online]. 2007 [cit. 2020-10-13]. Dostupné z: https://www.linuxexpres.cz/praxe/python-neni-krajta
  4. 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
  5. HAVLÍČEK, Štefan. Jython I: Seznamte se ..... Java portál [online]. 2008 [cit. 2020-10-14]. Dostupné z: http://www.java.cz/article/8312
  6. 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/
  7. 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č