abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 2
    dnes 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 6
    21.4. 19:11 | Komunita

    Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.

    Ladislav Hagara | Komentářů: 28
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (18%)
    Celkem 679 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Recenze knihy Ponořme se do Pythonu 3

    14. 4. 2011 | Michal Vyskočil | Recenze | 4921×

    Kniha Ponořme se do Pythonu 3 (Dive into Python 3) je reedicí známé Dive into Python Marka Pilgrima, tentokrát přizpůsobená reáliím nové verze tohoto jazyka. Odpověď na klasickou otázku – koupit, či nekoupit – se potom skrývá v následujícím textu.

    Obsah

    Ponořme se

    link

    Ve světě Pythonu byla tato kniha takovým zjevením – namísto nudného výčtu syntaxe – odsazení, if, class, def, následovaným popisem standardní knihovny se Mark nijak systematicky o popis standardní knihovny nesnažil. Syntaxí a obvyklými obraty se nikterak nezatěžoval a namísto toho se soustředil na skutečně zajímavé rysy jazyka.

    Ponořme se do Pythonu 3 je reedicí prvního, řekněme dílu, přizpůsobeného reáliím nové verze jazyka.

    Foto knihy

    O knize

    link

    Kniha začíná poměrně netradičně kapitolou -1, což je takový předúvod pro lidi, kteří už o Pythonu už něco vědí a navíc četli původní vydání. Autor uvádí soupis zajímavých témat obsažených v knize, ať je to skript 2to3 pro převod kódu z verze 2 to verze 3, případová studie – přepis knihovny chardet, práce se soubory, protokolem HTTP a tak dále.

    Poté následuje už běžná druhá kapitola číslo 0 – Instalujeme Python. Pro uživatele Linuxu nijak nezbytná záležitost, i když kniha obsahuje i popis instalace v Ubuntu a názvy příslušných příkazů pro ostatní *nixy. A také se dozvíme, jak se používá interaktivní shell Pythonu.

    Kapitoly

    link

    První kapitoly

    link

    Přejděme ke kapitole s tradičnějším číslováním – třetí kapitola číslo 1 (dobrá, od teď přestanu používat pořadová čísla kapitol) je nazvána Váš první pythonovský program. Autor už od počátku používá svůj typický styl – ukázat příklad a ten poté komentovat – tím prvním příkladem je program na převod čísel na lidsky čitelnou velikost (jako to dělají grafické programy, mc, nebo přepínač -h příkazu ls).

    Zjistíme, že poměrně krátký, pouze 30 řádkový program ukazuje poměrně dost základů jazyka – definice základních typů jako slovník a seznam, definice funkcí, poziční, pojmenované a nepovinné parametry funkcí, konstrukce __main__, používání dokumentačních řetězců. Navíc je zmínka o vyhledávacích cestách příkazu import, o skutečnosti, že prakticky všechno je v Pythonu objekt, co je to vlastně objekt, nesmí chybět zmínka o odsazování kódu. Poté se výklad zase vrací k původnímu příkazu debatou o výjimkách, odskočí se na řešení problémů s importem, citlivost na velikost písmen a poté už následuje seznam dalších zdrojů, jako například PEP 257: Documentation string conventions.

    Další kapitola se věnuje datovým typům – i když se to nezdá, tak Python 3 disponuje pěknou řádkou zabudovaných typů – autor vynechává specialitky typu buffer/memoryview a zaměřuje se na ty běžné, jako jsou pravdivostní hodnoty, čísla, řetězce, bajty a pole bajtů, seznam, n-tice, množina a slovník. A na to, jaký syntaktický cukr Python nabízí pro jejich tvorbu a používání.

    U pravdivostních hodnot se zmiňuje o tak zvaném booleovském kontextu (osobně bych dal přednost termínu pravdivostní) – čili, že jiný datový typ může vystupovat namísto svého typu jako právě pravdivostní hodnota – například prázdný seznam/množina/slovník se v podmínce if vyhodnocuje jako nepravda.

    Generátorová notace

    link

    Kapitola číslo 3 je pojmenována Generátorová notace a je celá věnována onomu comprehensions a je tak vlastně rozšířením předchozí kapitoly. Notace je stručný předpis, kterým se v Pythonu vytváří seznamy, slovníky a množiny ... a rovněž generátory. A aby to nebylo tak suchopárné, tak nosným příkladem je zde práce se soubory a adresáři, takže je zde malá odbočka v podobě osvětlení modulu os.path a glob. Autor ukazuje jak napsat notaci seznamu, jak filtrovat hodnoty, jak vytvářet seznam n-tic (a obecně seznam libovolných prvků).

    Poté pokračuje popisem notace slovníku, kde jsou příkladem opět soubory – nyní se vytváří slovník všech souborů, kde klíčem je název a hodnoty jsou lidsky čitelné velikosti daných souborů. Následuje už jen stručný popis notace množin.

    Řetězce

    link

    Následující kapitola je věnována řetězcům, což nakonec není tak zcela nudné téma, jak by se mohlo zdát. Je tomu jednak proto, že práce s řetězci je jednou z největších změn oproti Pythonu 3 a rovněž proto, že... protože řetězce a práce s textem nejsou ve skutečném světě ale vůbec nudné.

    Autor začíná popisem kódování znaků – fakt, že běžné 8bitové číslo není schopno pojmout všechny znaky, které lidstvo ráčilo za uplynulé roky vymyslet způsobil, že byla vytvořena řada kódování, která mapovala čísla na znaky z zpět. Následuje popisem standardu Unicode a jeho různých kódování – UTF-32, UTF-16, dojde na značku BOM a rovněž na UTF-8.

    Následuje už klasická část ponořme se věnovaná řetězcům v Pythonu – což jsou unicode řetězce. Vždy a bez výjimky. Protože svět není krásné místo, kde existují pouze Unicode řetězce, byl rovněž přidán typ bytes, což je pole bajtů a na konci kapitoly autor ukazuje způsob, jak unicode řetězec zakódovat (encode) do pole bajtů a naopak, jak jej dekódovat zpět (decode). A taky demonstruje fakt, že Python nikdy automaticky nepřevede řetězce na bajty a opačně.

    Následuje popis formátovacích řetězců – v Pythonu 2 existoval formátovací operátor %. Ten byl ve verzi 3 zrušen a řetězce teď mají metodu format(), která podporuje speciální mini jazyk, který popisuje autor.

    Ovšem řetězce mají i řadu dalších užitečných metod jako splitlines(), lower(), count(), nebo split(). Zajímavé je také vykrajování (slicing – mimochodem velice povedený překlad) nejen řetězců. Kapitola končí tím, jak změnit výchozí kódování zdrojových kódů (UTF-8) na jiné.

    Regulární výrazy

    link

    Kapitola regulární výrazy (nejen ta, ale zde mi přišlo důležité se o citátu zmínit) začíná citátem

    (Když se někteří lidé setkají s problémem, myslí si: „Já vím! Použiji regulární výrazy.“ V tom okamžiku mají problémy dva.)

    Jamie Zawinski

    Kapitola začíná popisem toho, jak nešikovná může být neznalost regulárních výrazů a používání jednoduchých řetězcových operací. Poté následuje případová studie – adresy ulic, kde autor ukazuje, že napsat regulární výraz, odpovídající danému řetězci není dost. Důležité také je, aby neodpovídaly řetězce, které odpovídat nemají. Dalším příkladem je kontrola římských čísel, kde jsou ukázány další aspekty práce s regulárními výrazy. Následuje odbočka k víceslovným regulárním výrazům, což je speciální forma, při které Python přestane považovat bílé znaky a # za součást regulárního výrazu. Tato forma umožňuje přehlednější zápis a bohatý komentář uvnitř výrazu. A kapitola končí posledním příkladem - analýzou telefonních čísel.

    A jak autor uvádí v části nazvané shrnutí, za 18 stran této kapitoly neprobral nijak velkou část regulárních výrazů - některé, jako například [a-z] budou zmíněny dále, ale třeba pojmenované skupiny a podobná rozšíření, která Python nabízí jsou už pouze v dokumentaci.

    Uzávěry a generátory

    link

    Následující kapitola Uzávěry a generátory se věnuje tématu, které by mohlo být zdánlivě složité, nicméně nijak zvlášť není. Nosným příkladem, kterému je věnována prakticky celá kapitola, je množné číslo anglických podstatných jmen. Pro zjednodušení alespoň těch pravidelných.

    Autor pokračuje použitím regulárních výrazů a postupuje přes jednoduchý naivní program, jehož logika je ve formě několikanásobné podmínky. Oddělí logiku do skupiny jednoduchých funkcí match_foo a apply_foo, přes které teď hlavní funkce iteruje. A protože tohle řešení není o moc víc flexibilní, protože rozšíření algoritmu pořád vyžaduje psaní kódu, dojde k oddělení dat do samostatného seznamu a napsání funkce, která vrací dvojici uzávěrových funkcí match_foo a apply_foo.

    Pokud nevíte, co je to uzávěr, možná nastala správná doba pro koupi této knihy.

    A protože se tato funkce jmenuje... a generátory, dalším krokem je dynamické budování seznamu uzávěrových funkcí – tu se seznámíme s příkazem yield, což je v zásadě forma příkazu return se zajímavými vedlejšími účinky, především skutečnost, že další volání takové funkce pokračuje za posledním yield.

    Třídy, iterátory

    link

    Následující kapitola číslo 7 začíná docela zmateným popisem toho, co jsou to vlastně třídy a iterátory – bohužel příklad začíná klíčovým slovem class, které je třeba vysvětlit nejdříve. Naštěstí se u tříd autor prakticky nezdržuje akademickou terminologií a prakticky ukazuje, jak definovat třídu, její atributy, co je to metoda __init__, jak se vytvářejí instance, jak přistupovat ke členským prvkům a podobně.

    Poté se již čtenář dozví, že iterátory jsou v Pythonu objekty implementující metodu __iter__, která vrací objekt s metodou next, který vrací hodnoty daného seznamu - v tomto případě čísla Fibonacciho posloupnosti. Dozvíme se o výjimce StopIteration, kterým iterátor dává najevo, že posloupnost skončila. A následuje přepis příkladu z předchozí kapitoly – čili iterátor pro jednotlivá pravidla množného čísla.

    Nosným příkladem kapitoly s příznačným názvem Iterátory pro pokročilé, je alfametická hádanka - jde o to najít ke vzorečku SEND + MORE = MONEY takové mapování písmen na čísla, aby rovnost platila. A řešením je 15 řádků dlouhý (nepočítaje importy a podobné drobnosti okolo) kód v Pythonu řešící právě tento typ úloh. Na vstupu je řetězec zadání a výsledkem je řetězec s řešením.

    Jádrem je již známý modul pro regulární výrazy, používání množin pro získání unikátních hodnot z posloupnosti, příkaz assert, generátorové výrazy (zápis je podobný jako notace seznamu, pouze s kulatými závorkami a výsledkem je generátor, který hodnoty obvykle dynamicky vytváří za běhu), výpočty permutací pomocí modulu itertools, řetězcová metoda translate a nakonec ještě eval (pochopitelně následována odstavcem eval is evil), kterým se ověřuje, že daná rovnost platí.

    Unit testing

    link

    Kapitola Unit testing nám představuje jednak danou knihovnu, ale prostřednictvím převodu Římských čísel i programování založené na testech. A protože v tomto typu programování se nejprve napíší testy, které pochopitelně selhávají a potom až vlastní kód – autor začne taky tak – prázdnou funkcí to_roman, která pouze definuje rozhraní používané v testu a testem na známé hodnoty. Ovšem to není vše, testování správných hodnot nám neřekne nic o tom, jak se funkce zotaví ze špatného výstupu, takže je třeba přidat pár testů, spustit je, opravit funkci a tak dále, že po přečtení této kapitoly již nebudete chtít programovat jinak, než prostřednictvím testů.

    Refaktorizace

    link

    Kapitola s honosným názvem Refaktorizace s předchozí úzce souvisí – kód, který nemá dobré testy je velice nebezpečné refaktorizovat. Příkladem je zde rozšíření podpory čísel z 3999 na 4999, takže změníme patřičné rozsahy v textech, spustíme je ... a zbytek pochopitelně znáte také.

    Soubory, XML, serializace, webové služby

    link

    Kapitola 11 se věnuje práci se soubory a proudy – což je oblast, která došla v Pythonu 3 změn. Tak například není nutné používat codecs.open, zabudovaná funkce open umožňuje specifikovat kódování souboru, které je platformně závislé, takže by stálo za to uvádět kódování vždy. V této kapitole bude rozdíl mezi znaky a bajty (read() a seek(), textové a binární soubory) opět vystrkovat hlavu. V souvislosti se zavíráním je zmíněn výraz with.

    Kapitola 12 se věnuje práci s XML - představena je knihovna ElementTree, která je nějakou dobu součástí standardní knihovny. Což je v pořádku, protože nabízí způsob práce s XML, který je více kompatibilní s Pythonem, než s Javou, či jakými jazyky používanými pro návrh DOM a SAX API. Nicméně autor obvykle nezůstává u trivialit, takže v polovině je představena knihovna lxml, která nabízí lepší podporu některých standardů, jako třeba XPath, než ElementTree a taky je rychlejší. Navíc je její rozhraní kompatibilní s předchůdcem, takže je vhodná doba na představení podmíněných importů a také import as. Dále se představuje generování XML. A také import porušeného XML, což mi připomíná – nosným příkladem bylo zpracování formátu Atom a na webu se občas stane, že dostaneme nekorektní dokument, no.

    Kapitola 13 O serializaci objektů začíná citátem z The Big Bang Theory (a pokud jste zvědaví jaký, je vážně dobrý čas na koupi knihy) – nijak jsem nepřišel na spojitost s tématem, ale je hezké vědět, že se autorův a recenzentův vkus shoduje. Kapitola ukazuje práci s modulem pickle, který dokáže objekty z pythonu uložit do souborů, pro kterou operaci zavedl překladatel neformální terminus technicus piklení. Autor mimo trivialit – uložíme, přečteme ukazuje i modul pickletools pro analýzu souboru.

    Zbytek kapitoly je věnován ukládání objektů do formátu JSON, který je přeci jen ve skutečném světě použitelný o něco více a Python 3 disponuje příslušným modulem. Nejdůležitější je mapování JSON objektů do Pythonu a naopak, ale neméně důležité je vědět, kterak serializovat typy, které Python má a Javascript ne – ntice, nebo třeba pole bajtů.

    Kapitola 14 s názvem webové služby nad HTTP se věnuje webovým technologiím. Dozvíte se, co je to HTTP, jak pracuje a které knihovny jsou v Pythonu 3 k dispozici. Významná část kapitoly se pak věnuje důvodům, proč zabudované knihovny nepoužívat a spolehnout se na externí httplib2. Stručně – důvody jsou (ne)podpora cache, ETag, komprese a jiné. Kdo neví o co jde, tak by měl vážně o koupi knihy uvažovat. Autor ukazuje, jak a co dělá knihovna http.client a co a jak přenáší httplib2 v různých situacích. To jest jak podporuje všechno to, co http.client ne.

    Další část kapitoly je věnována posíláním dat na web, čili metodě POST (a dále i jejímu mazání - čili DELETE). Příkladem je odesílání mikrozpráv na server identi.ca. Což mimo jiné znamená probrat i to, jak funguje autentizace.

    Přepis knihovny z Pythonu 2 do Pythonu 3

    link

    Kapitola 15 je z jiného soudku – jejím tématem je přepis knihovny z Pythonu 2 do Pythonu 3. Čili veskrze praktická věc pro ty, kteří již nějaký Python kód spravují a pro ty ostatní příležitost se podívat, v čem je Python 3 o tolik lepší. Sympatické je, že jelikož knihovna chardet detekuje různá kódování, dozvíte se zároveň o aspektech tohoto problému více, než byste možná kdy chtěli vědět, protože se začíná popisem problému a knihovny.

    Přepis knihovny je v zásadě refaktorizace, takže pokud nemáte v pořádku testy, raději se do toho ani nepouštějte. V tomto případě je problém o něco složitější, protože musíte do Pythonu 3 převést i samotné testy. Základem je spuštění skriptu 2to3, který dokáže upravit většinu z obvyklých změněných konstrukcí. Ke slovu se dostane i problematika více-souborových modulů, věci, které skript opravit neumí a zbytek kapitoly se spouštějí testy a upravují se řetězce na bajty a obráceně.

    Balení balíčků a dodatky

    link

    Kapitola 16 je potom už víceméně odpočinková. Týká se totiž distutils, což je způsob tvorby pythoních balíčků a rovněž je ukázáno, jak se pracuje s pypi – Python Package Index, což je centrální zdroj balíčků pro Python.

    Po této kapitole následují ještě čtyři dodatky. První se týká skriptu 2to3, takže je v něm podrobně popsáno co skript převádí a jak, stejně tak i volitelné doplňkové úpravy, které jsou standardně vypnuté. Dodatek číslo 2 s na první pohled nudným názvem Jména speciálních metod se zabývá problematikou __metod__, díky nimž je možné s našimi třídami pracovat jako se seznamem, slovníkem, číslem a podobně. Poslední dodatek s příznačným názvem Čím pokračovat ukazuje, že ani vyčerpávající Dive Into Python 3 nedokázala pokrýt všechny aspekty tohoto jazyka a že některé konstrukce nebyly vůbec zmíněny. Poslední čtvrtý Odstraňování problémů hovoří o tom, jak spustit příkazový řádek a jak z něj spustit Python.

    Vynořme se

    link

    Začněme netradičně tím, co se mi nelíbilo – podtrhávané názvy kapitol. Přestože je třeba následovat originál, podtrhávané názvy jsou zlá, nepěkná věc. A taky část s iterátory byla taková – ne zcela přesvědčivá. Myslím, že čtenář nebude tušit rozdíl mezi generátorem a iterátorem a především se naučí vracet self jako výsledek volání __iter__, díky čemuž nemůžeme mít více jak jeden iterátor pro kolekci. Na druhou stranu, pokud recenzent nenajde nic jiného, že musí zmínit podtrhnuté nadpisy, znamená to, že se mu kniha opravdu líbila.

    Což je pravda – kniha je vydána v typické sazbě edice CZ.NIC, tentokrát laděna do modra (a nechtějte po mě říct, zda to má být azurová, nebo jiná). Překlad je velice povedený – i když osobně bych nechal název knihy nepřeložený. Asi největší výzvou překladatele tak byl překlad list/dictionary/set comprehession – což je stručný zápis generování daného datového typu. Porodní bolesti výsledné generátorové notace jsem sledoval (stejně jako další drobtů, už ne tak výrazně problematických) na české emailové konferenci o Pythonu a výsledná generátorová notace seznamu/slovníku/množiny je poměrně rozumným výsledkem. Navíc se dá zkracovat na „a tato notace vracející seznam“, což už je rozumně znějící česká věta.

    Překlad obsahuje též pár osobních povzdechů překladatele – například u modulu pickle, kde zavedl pojem piklení inspirován známou pohádkou, které jsou v celkovém neformálním vyznění knihy velice sympatické.

    Kniha samotná je napsána velice čitelně – připomíná spíše sbírku povídek, kterak mocný Python řeší naše problémy, než suchopárnou referenční příručku. Každá kapitola začíná problémem, který se pak řeší určitým prostředkem jazyka – ať jde o konstrukci jazyka – jako třeba generátory, nebo zabudované knihovní funkce jako třeba regulární výrazy, anebo externí knihovny – případ lxml. Ovšem nezbývá než zopakovat, tohle není referenční příručka knihovny/knihoven jazyka Python.

    Samotný styl Marka Pilgrima, kdy se na pravém okraji výpisu kódu nachází [odkazové značky] a většina textu je potom ve formě poznámek ... nad čarou, kde jednotlivé body kódu jsou uvozeny právě těmito značkami. To sice způsobuje těžkosti překladatelům, kteří nemají místo, kam vložit svoje poznámky, ale jinak je výsledek překvapivě čitelný.

    Další sympatická věc je, že se kniha nebojí věnovat i tématům, která jsou na první pohled mimo záběr. Příkladem je podpora cachování v HTTP protokolu, kterou je dobré znát, aby vaše programy zbytečně neplýtvaly pásmem a rovněž poskytuje spoustu detailů o Unicode, které by ovšem každý programátor znát měl – práce s textem je základem velké spousty programů.

    A v neposlední řadě – každá kapitola je ukončena sadou odkazů, z nichž autor buď čerpal nebo nějakým způsobem rozšiřují původní téma.

    Závěrem

    link

    Knihu nezbývá než doporučit, překlad je povedený, vazba taktéž a obsah je pro vás zajímavý ať jste v Pythonu nováčkem, nebo znáte verzi 2 a chcete odzkoušet novinky verze 3 a dokonce i v případě, že se chcete lépe doučit verzi 2, protože pak stačí zapomenout fakt, že Python 3 zná pouze Unicode řetězce a typ bytes a máte v zásadě Python 2.


    Tuto knihu je možné – stejně jako všechny ostatní tituly v edici CZ.NIC – bezplatně stáhnout ze stránek knihy.nic.cz. Zde je také možné si knihu objednat v tištěné podobě.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Fluttershy, yay! avatar 14.4.2011 00:51 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3

    Mno, pominu ty organizační záležitosti a tady jsou mé přípomínky:

    • Překlad mi hlavně v úvodní kapitole přišel dost zvláštní až neohrabaný, ale pak už to bylo v pohodě.
    • Narazil jsem na poměrně dost chyb ve formátování, velkých/malých písmenech a nějaké překlepy (i v ukázkách kódu), taky jedna správně modrá stránka je v mém výtisku bílá. Naopak jsem nepostřehl hrubky, to potěší.
    • Papír i sazba mi (až na ta podtržení) vyhovují.
    • Oproti původnímu Dive into Python je to z hlediska obsahu téměř úplně jiná knížka.
    • Většina věcí je vysvětlena velmi srozumitelně, ale člověku, který nikdy neviděl Python, natož neprogramoval, bych to nedoporučil ani omylem.

    BTW v článku je docela dost chyb hlavně v interpunkci, ale teď se mi nechce to sbírat a hlásit.

    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    14.4.2011 03:56 ____ | skóre: 15 | blog: _
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Na mě knížka zapůsobila negativně. Jednak za to mohla ta prazvláštní sazba, druhak vyčerpávající roztáhlost a nudnost.
    corwin78 avatar 14.4.2011 09:17 corwin78 | skóre: 10 | Ostrava
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Mě se tato kniha velmi líbí, a lepší materiál k Pythonu v češtině jsem osobně nepotkal (netvrdím, že třeba někde neexistuje).
    Česká pirátská strana - "Internet je naše moře...".
    Fluttershy, yay! avatar 14.4.2011 09:28 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Nejen v češtině. Jinak mě zaujala jenom Building Skills in Python, ale tu jsem neprošel celou. Jinak je to skoro všechno pro úplné lamy, nebo specializované na nějakou knihovnu nebo způsob použití.
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    15.4.2011 00:12 Lukáš Kotek | skóre: 15
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Python 3 od Marka Summerfielda mi nepřijde vůbec špatný.
    Lidstvo vydává obrovské prostředky na ochranu sebe sama před sebou samým. Znáte lepší definici šílenství?
    15.4.2011 08:44 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Výše zmíněnou knihu mám doma od minulých Vánoc a jsem s ní velmi spokojen. Lze ji použít buď jako referenční příručku, tak i jako dobrý návod od kterého se dá odpíchnout při řešení úkolu v oblasti, ve které jsem se objevil poprvé.

    Za pozornost (pro začínající) podle mého také stojí Učebnice jazyka Python.

    Knihu recenzovanou v článku jsem si včera letmo prošel a musím přiznat, že styl jakým je napsaná byl pro mne zprvu trochu neobvyklý, ale rychle jsem si zvykl. Když si pdf knihy procházím dnes, tak mi přijde napsaná velmi dobře. Navíc obsahuje celou řadu chytrých nápadů a koncepcí, která jsou jasně vysvětleny.
    14.4.2011 06:12 zulu
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Nekupovat.
    14.4.2011 07:48 petr
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Asi největší výzvou překladatele tak byl překlad list/dictionary/set comprehession ... seznamu/slovníku/množiny
    Tohle jsem trochu nepochopil, proč to byl takový oříšek přeložit. Tyhle pojmy se takto do češtiny překládají minimálně 20 let (nejspíš o dost déle, ale nejsem takový pamětník). Stačí se podívat do libovolné česky psané knihy. V překládaných záleží na (ne)znalosti překladatele.
    14.4.2011 09:19 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    No jediný ekvivalent, o kterým vím je generátor seznamu. Což je v Pythonu trošku problém, protože tam je generátor přesně vymezený pojem - to s kulatými závorkami, nebo yield.

    Pro ty, kteří se chtějí prokousat vznikem tohoto překladu - viz archívy březen a duben 2010 na py.cz.

    BTW: když už je tak zřejmé, jak list comprehession přeložit, jistě by bylo možné napsat taky jak se překládá.
    When your hammer is C++, everything begins to look like a thumb.
    14.4.2011 09:36 petr
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Beru zpět, špatně jsem pochopil tu větu v článku. Neodhalil jsem pravý význam těch lomítek ve větě. Já jsem myslel, že se řešilo jak přeložit list, dictionary a set.
    14.4.2011 22:53 Gejza Jenča
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3

    Ja prekladám pri prednáškach "list comprehension" ako "vydelenie zoznamu". V tomto prípade totiž termín comprehension bol zdedený z matematického pojmu "set comprehension", ktorý sa prekladá ako "vydelenie množiny".

    viď toto.

    rADOn avatar 14.4.2011 13:44 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Poté se již čtenář dozví, že iterátory jsou v Pythonu objekty implementující metodu __iter__, která vrací objekt s metodou __next__…
    Chyba soudruhu, ta druhá metoda se jmenuje prostě next(), bez podtržítek. Vím, je to překvapivé, ale i takové exoty v pythonu trpíme :-)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    14.4.2011 13:58 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Jasně, poprosil jsem Luboše, ať to opraví.
    When your hammer is C++, everything begins to look like a thumb.
    Luboš Doležel (Doli) avatar 14.4.2011 14:25 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Opraveno, díky!
    15.4.2011 19:56 JS
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Jestli se nepletu, Guido jeden cas zvazoval, ze to ve verzi 3 skutecne na __next__ prejmenuje, takze je to pochopitelna chyba.
    16.4.2011 09:58 janik | blog: janko
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    Ha... zjavne to naozaj v trojke premenovali: Python 3.1.3 (r313:86834, Mar 10 2011, 18:01:17)
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> x=iter([])
    >>> dir(x)
    ['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
    '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__length_hint__', '__lt__', '__ne__',
    '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__',
    '__str__', '__subclasshook__']
    16.4.2011 17:59 mamlasek
    Rozbalit Rozbalit vše Re: Recenze knihy Ponořme se do Pythonu 3
    co me nejvice zaujalo je absence korektury teto "recenze". zamerne jsou nektra slova ve vetach vynechana?

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.