Hlavní navigace

Nebojte se hroznýše!

Lukáš Zapletal

Přestože slovo Python (Hroznýš) zní přímo děsivě, nemusíte se ho bát. Python je totiž interpretovaný, interaktivní, snadno portovatelný a objektově orientovaný programovací jazyk vysoké úrovně. Podporuje například dynamické typy nebo výjimky a má velmi čistou syntaxi. Rád bych vám ho trošku představil.

Hned zpočátku vás asi napadne jedna otázka: „Proč zrovna hroznýš?“ Je to jednoduché: původní autor jazyka, pan Guido van Rossum, měl rád komedii „Monty Python's Flying Circus“, která běžela v 70. letech na BBC a rozhodl se pojmenovat jazyk stejně. Jazyk je vyvíjen zhruba od roku 1990. Dnes se na vývoji podílí široká komunita lidí a byla vytvořena asociace PSA (Python Software Activity), která koordinuje jeho vývoj. Mezi největší přednosti Pythonu odborníci řadí zejména to, že je to jazyk vysoké úrovně (ne jako například Java, která je považována za jazyk nízké úrovně) a že je snadno rozšiřitelný.

Python je interpretovaný a tudíž ke svému životu potřebuje interpretr. Tyto interpretry samozřejmě existují pro mnoho operačních systémů (pochopitelně včetně Linuxu). Interpretované jazyky mají několik výhod a nevýhod. K výhodám se zcela jistě počítá větší bezpečnost programu. Interpretr hlídá věci, které by zkompilované programy hlídat nemohou (např. meze polí) a umožňuje efektivní ladění. Druhou stejně důležitou kladnou vlastností je přenositelnost zdrojového kódu – stačí jen nainstalovat na daný systém interpretr. I když se ale Python řadí mezi interpretovanými jazyky (co se týče rychlosti) ke špičce, nikdy nebude generovaný kód tak efektivní, jako např. od C++ kompilátoru, což je jeho hlavní nevýhoda. V dnešní době (stovky megabajtů paměti a gigahertzové procesory) už ale nezáleží, zda se okno aplikace překreslí o několik milisekund později a kritickou část aplikace, která vykonává vlastní výpočty, je možno psát v C/C++ a k Pythonu ji velmi jednoduše (SWIG) připojit. Python je také ideální pro výuku programování (objektového) právě díky interpretru, který se dá spustit a programátor může jednoduše a hlavně přímo (bez jakékoliv kompilace) začít programovat.

Zda máte či nemáte v systému Python instalovaný zjistíte snadno. Napište

root# python
Python 1.5.2 (#1, Sep 17 1999, 20:15:36)  [GCC egcs-2.91 Linux]
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>

Pokud se spustí interpretr, vypíše informaci o verzi a čeká na příkaz (pokud znáte Scheme či Perl, je to podobné). Hned ze začátku Python můžeme vyzkoušet z malé násobilky.

>>>3*4
14
>>>

Jestliže jste dostali stejný výsledek jako já, tak vězte, že máte velké problémy a měli byste uvažovat o novém hardwaru, protože 3*4 je rovno 12 (byl to takový chyták :-))) Ne teď vážně, Python je opravdu výborný nejen pro výuku, ale dá se využít jako kvalitní kalkulačka.

>>>#uvidime jak jsi na tom s komplexnimi cisly
... a=3.5+0.5j
>>> a.real
3.5
>>> a.imag
0.5

Jak vidno, komplexní čísla ho nemohou v žádném případě zaskočit. Všimněte si tří teček místo „>>>“ interpretr tím naznačuje, že očekává pokračování příkazu. Znak „#“ je používán pro komentář. Interpretr se ukončuje „EOFem“ (CTRL+D).

Programy se zpravidla skládají z několika zdrojových souborů – stejně tomu tak je u Pythonu. Zdrojové soubory mají obvykle příponu „.py“. Virtuální počítač si vytváří (kompiluje) bytekód, který ukládá pod příponou „.pyc“ (stejně tak, jako u Javy soubor .class). Můžete se také setkat se soubory „.pyd“, které obsahují binární kód knihoven psaných v nativním jazyce operačního systému. Pokud budete chtít programy distribuovat v binární podobě, je možno pomocí utilitky freeze.py vytvořit spustitelný program (s interpretem) pro daný systém. Nevýhodou je, že takové spustitelné soubory jsou poměrně velké (několik MB), což ale v dnešní době plné různých vizuálních builderů není až takovou překážkou.

Pokud budete chtít pomocí Pythonu dělat GUI aplikace, musíte si stáhnout nějakou knihovnu (wxPython, TCL…). Asi jako nejvýhodnější se dnes jeví knihovna wxPython. Je snadno portovatelná, v pozadí stojí výborná knihovna wxWindows a je skvěle navržená (recenze zde – pozn. redakce). Pro Python se vyvíjí IDE prostředí (v TCL – je tedy použitelné všude) s názvem IDLE. Projekt je sice v raném stádiu, ale již dnes může nabídnout kvalitní vizuální debugger či zvýraznění syntaxe. Mám za to, že již dnes existují vývojové prostředí jak pro Windows, tak pro Linux/Unix. S pomocí wxPythonu můžete programovat skutečně rychle a efektivně:

from wxPython.wx import *

def dialogTest():
        win = wxDialog(NULL, -1, "Toto je wxDialog",
                wxDefaultPosition, wxSize(350, 200))

        wxStaticText(win, -1, "Toto je wxDialog",
                wxPoint(20, 20))
        wxButton(win, wxID_OK, " OK ", wxPoint(75, 120),
                        wxDefaultSize).SetDefault()
        wxButton(win, wxID_CANCEL, " Zpět ",
                wxPoint(200, 120), wxDefaultSize)

        val = win.ShowModal()
        if val == wxID_OK:
                print("Stiskl jste OK\n")
        else:
                print("Stiskl jste Zpět\n")

dialogTest()

A perlička na závěr: o Python se začal intenzivně zajímat i Microsoft a v jejich Visual Studiu 7 bychom měli najít dva zbrusu nové produkty: Visual Python a Visual Perl (s oběma Microsoftu pomáhá firma ActiveState, která dodává na trh jeden z portů Pythonu a Perlu pro Windows). Proslýchá se, že by ActiveState měl dodat kompilátor do nativního strojového kódu pro x86 (zjednodušeně řečeno, z Visual Pythonu by měly vypadávat EXE soubory). No uvidíme.

ODKAZY
www.python.org
www.python.cz – zaregistrováno, uvidíme :-)
www.wxpython.org

Našli jste v článku chybu?