Hlavní navigace

Nebojte se hroznýše!

Lukáš Zapletal 25. 8. 2000

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?

23. 9. 2005 12:40

duxford (neregistrovaný)
Na strankach python.cz neni obsah o jazyku python. Ceske stranky jsou na http://www.py.cz/ ;-)

28. 8. 2000 15:06

Podhajsky Jan (neregistrovaný)

me pripada OOP v php nestacujici. Vzdyt krome klicoveho slova Class a zakladniho dedeni nic z oop nepodporuje. Nehlede na to ze je to silne 'under construction' protoze tusim jeste beta ctyrky neumela referovat funkce z pole objektu..
Otazka je, co je na webu vyuzitelne.. to mate pravdu.
jinak co se tyce srovnani php a pythona, me to bylo prezentovano jako nazor a do pythona nesvitim, takze nevim. Pokud jsem pochopil je Python ciste systemovy jazyk, nebo existuje neco jako mod_python pod www ser…

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie