Kapitola 1 -- O jazyce Python -- Proč používat Python? -- Stručné hodnocení programovacích jazyků -- Srovnání Pythonu s jinými jazyky -- Python versus C, Pascal, C++ a Java Python versus Visual Basic Python versus Tcl Python versus Perl -- V čem je háček? -- Soužití Pythonu s jiným programovacím jazykem -- Python a otevřený software -- Shrnutí -- Kapitola 2 -- O knize -- Jak s knihou pracovat -- Členění knihy Poznámky po stranách Upozornění -- Výuka Pythonu pomocí příkladů -- Pravidla používaná při formátování kódu příkladů -- Interaktivní ukázky Neinteraktivní příklady -- Co v knize najdete -- Kde naleznete další informace -- Zpětná vazba -- Kapitola 3 -- Začínáme -- Instalace jazyka Python -- Prostředí IDLE a jeho základní interaktivní režim -- Základní interaktivní režim Integrované vývojové prostředí IDLE -- Ahoj, světe ! -- Práce v okně Python Shell prostředí IDLE ČÁST II -- ZÁKLADY -- Kapitola 4 -- Stručný přehled jazyka Python -- O této kapitole Přehled jazyka Python Interní datové typy -- Čísla -- Seznamy -- N-tice -- Řetězce -- Slovníky -- Souborové objekty Struktury řízení chodu programu -- Logické hodnoty a výrazy Příkaz if-elif-else Cyklus while Cyklus for Definice funkcí Výjimky -- Tvorba modulů -- Objektově orientované programování Shrnutí -- Kapitola 5 -- Základy jazyka -- Odsazování textu a bloková struktura kódu -- Komentáře -- Proměnné a přiřazení
-- Výrazy -- Řetězce -- Čísla -- Vestavěné matematické funkce Další matematické funkce Matematické výpočty Komplexní čísla -- Hodnota None Vestavěné operátory -- Kapitola 6 -- Seznamy a n-tice -- Seznamy jsou jako pole Indexování seznamu Modifikace seznamů Třídění -- Uživatelské třídění -- Další běžné operace se seznamy -- Zjištění existence prvku v seznamu pomocí operátoru in Zřetězení seznamu operátorem + Inicializace seznamu operátorem * -- Nalezení nejmenšího a největšího prvku seznamu pomocí funkcí min a max Hledání indexu prvku v seznamu Počet výskytů prvku v seznamu -- Vnořené seznamy a hluboké kopie N-tice -- Základy n-tic Jednoprvková n-tice Skládání a rozklad n-tice Převody mezi seznamy a n-ticemi -- Shrnutí Kapitola 7 -- Řetězce -- Řetězce jakožto sekvence znaků Základní řetězcové operace Speciální znaky a escape sekvence -- Základní escape sekvence -- Numerické (osmičkové a šestnáctkové) escape sekvence Tisk versus vyhodnocení řetězce se speciálními znaky -- Modul string -- Funkce string.split a string.join -- Převod řetězců na čísla -- Jak se zbavit přebytečných prázdných míst -- Hledání řetězců -- Úpravy řetězců -- Úpravy řetězců prostřednictvím seznamů Užitečné konstanty -- Převod objektů na řetězce Formátování řetězců -- Použití formátovacích sekvencí -- Pojmenované parametry a formátovací sekvence -- Kapitola 8 -- Slovníky
-- Co je slovník? -- Proč se slovníky nazývají slovníky? -- Další operace se slovníky Počítání slov -- Co všechno může být klíčem? Řídké matice -- Slovník jako vyrovnávací paměť Efektivita slovníků -- Kapitola 9 -- Řízení běhu programu -- Cyklus while Konstrukce if-elif-else Cyklus for -- Funkce range -- Cyklus for a rozbalení prvků n-tic -- Příkazy, bloky a odsazování Logické hodnoty a výrazy -- Většina objektů Pythonu může být pravdivostní Porovnávání a logické operátory -- Kapitola 10 -- Funkce a procedury -- Základní definice funkcí a procedur Přiřazení funkcí proměnným Lambda funkce -- Možnosti funkčních parametrů -- Implicitní hodnoty -- Předávání argumentů jménem parametru -- Proměnlivý počet argumentů -- Kombinace obou metod předávání argumentů Měnitelné objekty jako argumenty Lokální a globální proměnné Shrnutí -- Kapitola 11 -- Moduly a pravidla rozsahu -- Co je modul? -- První modul -- Příkaz import -- Hledání cesty k modulu -- Kam umístit vaše vlastní moduly -- Chráněná jména v modulech Knihovna a moduly třetích výrobců Pythonová pravidla rozsahu a prostor jmen -- Kapitola 12 -- Práce se souborovým systémem -- Cesty a jejich popis -- Absolutní a relativní cesty Aktuální pracovní adresář Manipulace s popisy cest Užitečné konstanty a funkce -- Jak získat informace o souborech Další operace se souborovým systémem Zpracování všech souborů v
adresářovém podstromu Shrnutí -- Kapitola 13 -- Čtení a zápis do souborů -- Otevření souborů a souborových objektů Uzavření souborů -- Otevření souborů v režimu zápisu nebo jiném Funkce pro čtení a zápis textu nebo binárních dat Funkce vstupu a výstupu na obrazovku a přesměrování Modul struct -- Nakládání objektů do souboru Umístění objektů v souboru Shrnutí -- Kapitola 14 -- Výjimky -- Úvod do výjimek -- Obecná filozofie ošetření chyb a výjimek Formálnější definice výjimek Uživatelem definované výjimky -- Výjimky v jazyce Python -- Typy výjimek v jazyce Python -- Vyvolávání výjimek -- Zachycení a obsluha výjimek -- Definování nových výjimek -- Ladění programů pomocí příkazu assert -- Hierarchie při dědění výjimek -- Příklad: náš program pro zápis na disk v jazyce Python Příklad: použití výjimek při běžných výpočtech Kde používat výjimky -- Kapitola 15 -- Skripty -- Vytvoření nejednoduššího skriptu -- Spuštění skriptu z příkazového řádku Argumenty předávané z příkazového řádku Přesměrování vstupu a výstupu skriptu Modul getopt Použití modulu fileinput -- Co udělat aby byl skript v systému UNIX přímo spustitelný Možnosti spuštění skriptu v systému Windows -- Spouštění skriptu jako dokumentu nebo zástupce Spouštění skriptu z dialogového okna Spustit Spouštění skriptu z příkazového okna MS-DOS Další možnosti ve Windows -- Skripty
v systému Windows versus skripty v systému UNIX Skripty a moduly -- Vytvoření spustitelného programu pomocí nástroje freeze Shrnutí -- Kapitola 16 -- Třídy a objektově orientované programování -- Definování tříd -- Použití instance třídy jako struktury nebo záznamu Objekty, instance tříd a dalších typů jazyka Python -- Proměnné instance Metody -- Proměnné třídy -- Úskalí při použití proměnných tříd Metody třídy Dědění -- Dědění s proměnnými tříd a instancí Soukromé proměnné a metody -- Pravidla rozsahu platnosti a jmenné prostory pro instance tříd Destruktory a správa paměti Vícenásobná dědičnost Shrnutí -- Kapitola 17 -- Grafická uživatelská rozhraní a knihovna Tk -- Instalace knihovny Tk -- Spuštění knihovny Tk a použití modulu Tkinter Principy knihovny Tk -- Grafické prvky -- Pojmenované atributy -- Správa geometrie a rozmisťování prvků -- Jednoduchá aplikace s modulem Tkinter -- Tvorba grafických prvků -- Rozmisťování grafických prvků -- Co dalšího se dá s modulem Tkinter dělat? -- Obsluha událostí Plátno a text -- Doplňky knihovny Tk a modulu Tkinter -- Alternativy ke knihovně Tk a modulu Tkinter Shrnutí -- Poznámka -- ČÁST III -- Pokročilé vlastnosti jazyka -- Kapitola 18 -- Balíčky -- Co je to balíček První ukázka Skutečný příklad -- Základní použití balíčku matproj Zavedení vnořených balíčků a modulů Příkazy import uvnitř balíčků Soubory_init.py
-- Atribut_all -- Správné použití balíčků -- Kapitola 19 -- Datové typy jako objekty -- Typy jsou také objekty -- Použití typů -- Modul types -- Typy a uživatelské třídy -- Kapitola 20 -- Speciální metody -- Co je to speciální metoda? -- Jak vytvořit objekt tak, aby se choval jako seznam -- Speciální metoda_getitem -- Jak to pracuje -- Implementace všech vlastností seznamu -- Vzorový problém 2 -- Kdy speciální metody použít -- Kapitola 21 -- Regulární výrazy -- Co je regulární výraz? Regulární výrazy s metaznaky Regulární výrazy a neupravené řetězce -- Neupravené řetězce naše záchrana Získání odpovídajícího textu z řetězce Nahrazování textu pomocí regulárních výrazů Co dalšího lze s regulárními výrazy dělat? -- ČÁST IV -- Pokročilá témata a aplikace -- Kapitola 22 -- Python, Windows a objekty COM -- Úvod -- Jak používat Python s objekty COM -- Instalace a nastavení -- Anatomie serveru COM v Pythonu -- Import modulů pro práci s objekty COM Nastavení třídy serveru COM Psaní metod třídy serveru -- Registrace třídy serveru Pythonu pro použití s ostatními objekty COM -- Testovací kód -- Vytvoření těla modulu -- Šablona pro server COM Pythonu vcelku -- Vytvoření a použití serveru z jazyka Visual Basic -- Řešení problémů se serverem Použití serveru Zastavení serveru -- Výměna dat se serverem -- Čísla Řetězce -- Získání seznamu -- Předání seznamu -- Získání tabulkových
dat -- Více o polích typu Variant -- Nepravidelné seznamy -- Předání objektů Zpětná volání Program Excel jako klient -- Nastavení sešitu programu Excel pro práci se serverem Vyvolání dat Co dál? -- Distribuované objekty COM -- Klientská strana objektů COM automatizace programů Office -- Vyvolání dat z databáze Access Aktualizace záznamu v databázi Access Spuštění a vložení dat do programu Excel Spuštění a vložení dat do programu Word -- Typové knihovny Pokyny -- Další specialitky -- Hostitelské skriptování ve Windows ODBC -- Použití s knihovnou MFC Další rozhraní API Windows Volání libovolné knihovny DLL -- Zdroje informací Kapitola 23 -- Rozšíření Pythonu pomocí jazyků C a C++ -- Účel této kapitoly Podrobnosti o kompilování -- Jaký kompilátor? -- Statické a dynamické rozšiřující moduly Podrobnosti o kompilování v systému První příklad -- Vytvoření šablony -- Správa paměti -- Potřeba správy paměti -- Jednoduchý příklad -- Kdy je čítač odkazů snížen? -- Počítání odkazů je věda Jak psát rozšiřující moduly v jazyce C++ Co dál -- Kapitola 24 -- Integrace s javovským virtuálním strojem: JPython -- Co je to JPython -- Prolog: falešná iluze o jediném jazyce -- A co Java? -- JPython, bomba mezi skriptovacími jazyky Stažení a instalace překladače JPython -- Test funkčnosti JPythonu -- Použití Javy z jazyka JPython -- Rozšiřování javových tříd -- Použití jazyka
JPython z Javy Kompilování tříd jazyka JPython -- Poznámky k používání skriptu jpythonc Společné použití Javy a jazyka JPython Závěr -- Kapitola 25 -- HTML a Python balíček HTMLgen -- K čemu můžeme knihovnu HTMLgen použít -- Příklad použití knihovny HTMLgen -- Jak knihovna HTMLgen zapisuje objekty Dokumentový model -- Hierarchie tříd dokumentu -- Tabulky -- Tabulka rychle, ale nepěkně Tabulka se vším všudy -- Seznamy Rámce Obrázky Obrazové mapy Značka <A> -- Volání třídy jako funkce Podpora kaskádových stylů CSS1 -- Pokročilé vlastnosti stylů -- Skripty CGI a formuláře -- Skripty CGI a třída StickyForm Skripty CGI a aplikační server Zope -- Doplňkové moduly Budoucnost -- Kapitola 26 -- Použití systému Zope -- Úvod -- Publikování objektů -- Co je to publikování objektu? -- Průchod k objektu: od adresy URL k volání objektu -- Publikování objektu v detailech -- Jednoduchý příklad -- Návštěvní kniha a generátor reklamy -- Pokročilé vlastnosti systému Zope -- Generování kódu HTML pomocí balíčku DocumentTemplate Podmínky, posloupnosti a výrazy Tvorba trvalých objektů pomocí databáze BoboPOS Další vlastnosti -- Nabídka zaměstnání na Internetu -- Kapitola 27 -- Co ještě Python umí?