překlad: Petr Přikryl*)
V současnosti je moje kniha dostupná již v druhém vydání[1]. Druhé vydání prodává přinejmenším Amazon a předpokládám, že jinde to bude podobné. Je v něm opravena řada chyb, které se objevily v prvním vydání. (Číslo vydání je uvedeno v dolní části informační stránky výtisku, naproti věnování). Nedávno jsem, bohužel, obdržel od jednoho zájemce zprávu, že mu z nakladatelství Amazon poslali první vydání, takže vám nemohu zaručit, které vydání dostanete — je mi líto.
Knižní podoba (v obou vydáních) obsahuje ve srovnání s webovou verzí
výrazně vylepšená vysvětlení, ačkoliv to se týká pouze částí věnovaných
jazyku Python. Ve srovnání s webovou podobou kniha obsahuje víc příkladů a
několik zcela nových kapitol. Je mezi nimi i úplně nová případová studie
objektově orientovaného prostředí (framework) pro psaní her[2]. (Plně komentovaná
verze tohoto prostředí je nyní dostupná na webových stránkách Useless Python jako
hmgui.zip.) Doufám, že každý, kdo shledal mé webové stránky
užitečnými, bude spokojen také s knihou.
Mimochodem, navzdory tvrzení několika recenzí, které můžete najít na Amazonu, kniha skutečně obsahuje příklady. Nacházejí se prostě průběžně v textu a nikoliv vždy na konci kapitoly — nemám rád styl, kdy se příklady uvádějí na konci kapitol.
Některé detaily naleznete na stránce vydavatele. Knihu si můžete objednat přes Amazon. Má ji k dispozici i většina dalších internetových obchodů s knihami.
Japonská pobočka mého vydavatele nabízí rovněž japonský překlad knihy.
V současnosti jsou k dispozici webové stránky, na kterých naleznete seznam chyb a které vám umožní zasílat ohlasy a dotazy. Prosím, věnujte jim pozornost — zvláště tehdy, pokud jste si knihu zakoupili.
Tyto stránky jsou neustále udržované a zdokonalované dokonce i poté, co byla vydána výše zmíněná kniha. Byly již doplněny o několik nových témat (viz detaily uvedené níže).
Poznámka překladatele: autor dále uvádí odkazy na překlady v jazyce španělském, portugalském, německém, italském, českém a korejském, včetně jmen překladatelů a některých technických poznámek. Vzhledem k tomu, že se počet jazyků může rozšiřovat, podívejte se v případě zájmu na stránku s originálním textem.
V překladech do některých jazyků může chybět jedna či dvě kapitoly, ale každý z překladů již má užitečnou podobu. Myslím, že si každý z překladatelů zaslouží díky za úsilí, které překladu věnují. Pokud chce překládat kdokoli další, pošlete mi email.
V současnosti dokončuji novou knihu. Jakmile s tím budu hotov, zahájím kompletní přepracování tohoto kurzu. Mezi zamýšlená vylepšení chci zařadit přechod na novější verzi jazyka Python, (přinejmenším) na verzi 2.3. Chci přidat několik nových kapitol a dát jim modernější vzhled. Doufám, že k tomu dojde někdy během léta.
S archivním tvarem souborů jsou pořád nějaké problémy. Některé soubory
se, jak se zdá, čas od času poruší. Nezávisle na tom, jaký formát použiji,
mají s ním někteří uživatelé problémy. Zdá se, že jediné řešení spočívá ve
zveřejnění jak archivu ve formátu zip, tak archivního souboru
ve formátu tgz. Doufám, že tím uspokojím všechny.
Uživatelé systému Linux si mohou stáhnout verzi
tar/gzip. Uživatelé Windows budou moci použít tutéž verzi, protože
programy winzip a volně dostupný
archivační program Quick Zip autora
jménem Joseph Leung si oba s formátem tgz poradí. Formát
tgz je použit také pro neanglické překlady.
Verzi ve formátu zip najdete zde.
Doufám, že jsem tím uspokojil každého z vás.
Poznámka překladatele: Česká verze je rovněž
dostupná v obou formátech. Archivační programy pro vytváření archivních
souborů v obou formátech jsou dostupné jak pro Linux, tak pro Windows.
Programy tar a gzip — případně novější verze
programu tar, která při zadání příslušného parametru přímo volá
program gzip —, jsou standardní součástí distribuce
systému Linux. U systému Windows doporučuji nainstalovat alespoň
nejzákladnější balík sady unixových utilit pro Windows — Cygwin. Ten se dodává v podobě archivního
souboru bootstrap.zip (asi 800KB) a kromě jádra systému
obsahuje právě potřebné programy tar a gzip. Pro
systémy typu Unix i Windows existuje i distribuce Info-ZIP, která obsahuje
programy zip a unzip.
Poznámka překladatele: Součástí distibuce anglické
verze je i soubor tutor.pdb, tj. podoba tohoto textu ve formátu
dokumentačního souboru pro Palm. Podrobnosti hledejte v originálním
textu.
Pracuji na vytváření této učebnice, protože se mi zdá, že úplní začátečníci v programování toho na Webu[3] mohou nalézt velmi málo. Přitom samotná existence Internetu[4] a Webu vzbuzuje zájem o počítače a tento zájem přirozeně vede k touze po jejich ovládnutí. To ovšem znamená naučit se programovat!
Proč jsem to napsal právě já? Tak tedy, jsem profesionálním programátorem se vzděláním v oblasti elektro inženýr. Naučil jsem se (a stále používám) několik programovacích jazyků, ale nemám žádný osobní zájem podporovat některý konkrétní z nich. Také se zdá, že ještě nikdo jiný nic takového nenapsal.
V rámci svých schopností budu vysvětlovat základy počítačového programování — co to je, něco o historii a o základních technikách, které potřebujete pro řešení problémů. Nebudu zde vysvětlovat esoterické techniky nebo detaily jednotlivých programovacích jazyků. Budu spíše používat několik odlišných jazyků, neboť věřím, že je důležité si uvědomit, že různé jazyky jsou vhodné pro různé věci. Abych to shrnul, většina obsahu kurzu bude věnována programovacímu jazyku, který se nazývá Python.
Koukněme se na to z jiné stránky: co očekávám, ze čtenář již zná?
Očekávám, že čtenář je zkušeným uživatelem počítačového systému, pravděpodobně systému MS DOS, Windows nebo Unix, ačkoliv ostatní by si s tím také měli umět poradit. Dále očekávám znalost základních matematických pojmů jako jsou geometrické souřadnice, množiny a základy algebry. Toto vše je v soudobých programovacích prostředích důležité a mnoho koncepcí programování je založeno právě na těchto myšlenkách.
Určitě se nebudu zabývat problémy typu jak vytvořit nebo zkopírovat textový soubor, jak instalovat software, nebo jakým způsobem se v počítači ukládají soubory. Upřímně řečeno, pokud se potřebujete dozvědět tyto věci, pak pravděpodobně ještě nejste schopni programovat — bez ohledu na to, jak moc po tom toužíte. Naučte se nejdříve něco o svém počítači a teprve až budete u výše uvedených pojmů cítit větší jistotu, vraťte se k tomuto textu.
Python je krásný jazyk na učení. Jeho syntaxe[5] je jednoduchá a tento programovací jazyk má v sobě zabudované velmi silné rysy. Podporuje mnoho programovacích stylů, od velmi jednoduchých až po současný vrchol v podobě technik objektově orientovaného programování. Funguje na mnoha platformách — Unix/Linux, MS Windows, Macintosh atd. Zformovala se kolem něj velmi přátelská společnost uživatelů, kteří jsou ochotni pomoci[6]. Toto všechno je velmi důležité pro jazyk, ve kterém se má naučit programovat začátečník.
Nicméně Python není jazyk jenom pro začátečníky. Během růstu vašich programátorských zkušeností zjistíte, že jazyka Python můžete používat jako koncový aplikační jazyk nebo jako jazyk pro rychlé prototypování[7]. Existují problémy, pro jejichž řešení se Python moc nehodí, ale je jich relativně málo.
Pro první příklady použiji také jazyk BASIC, později jako alternativu uvedu jazyk Tcl. Proč? No, pokud přijmeme skutečnost, že většina začátečníků, kteří se brouzdají webovými stránkami, používají osobní počítače s nainstalovanými Microsoft Windows, pak mají na instalačním CD ROM (pro Windows NT nebo pro Window 95/98) k dispozici také jazyk BASIC (QBASIC). Jazyk Tcl byl dodáván spolu s jazykem Python až do verze V1.5.2 (takže vlastně získáváte dva jazyky za cenu jednoho, která je navíc nulová). Od verze Python 2.0 je součástí instalace pouze minimalizovaná instalace Tcl. Takže pokud si budete chtít vyzkoušet všechny příklady, bude si muset ze stránek Scriptics stáhnout oficiální instalaci jazyka Tcl.
Existují další webové stránky, které se pokoušejí o totéž, v jiném programovacím jazyce. Existuje řada kurzů pro ty, kteří už umějí programovat, ale chtějí se naučit nový jazyk. Uvádím zde několik odkazů o nichž si myslím, že jsou užitečné:
Pokud vás napadne, co by se dalo na překladu této kapitoly vylepšit, zašlete e-mail odklepnutím tohoto odkazu. Tím bude do subjektu dopisu automaticky vložena informace o jméně a verzi tohoto HTML dokumentu.
$Id: cztutintro.html,v 1.38 2003/11/23 19:23:41 Petr Exp $