Re: [python] class a subclass
mtip napsal(a): RM Problem je asi niekde v tom, ze v potomku v metode ma() odovzdavas RM self t.j. referenciu na instanciu triedy b (potomka) RM super(b,self).ma() RM Neviem naco by sa v tej funkcii super() mala davat referencia na potomka, RM ked to ma ist do rodica. RM Ja som to skusal aj inac ale nejde mi to. Predtym som super() nikdy RM nepouzil. Podla mna tam niekde je problem. To je presne ono. Ja to taky tak chapu, jenze lze ziskat neco jako instanci rodice ? To asi ne, podle me vsechno bezi na jedne instanci a to self potomka. Navic sem to zkusil tak, ze misto self tam vytvorim novou instanci rodice a poslu a uz to funguje, jak ma. Jenze ta nova instance pred kazdym volanim predka nelze v praxi pouzit. Možná je chyba v tom mentálním obraze rodič-potomek. Instance odvozené třídy je instance potomka. Žádná související instance rodičovské třídy neexistuje. Potomek se chová úplně jako tata, jenom některé věci dělá trošku jinak. Prober si tohle class tata(object): def huli(self): return 'smoke' def chlasta(self): return 'glgy glgy' def nadava(self): return 'do prdele' def vlastnosti(self): return '%s, %s, %s' % (self.huli(), self.chlasta(), self.nadava()) def __str__(self): return self.vlastnosti() class synek(tata): def chlasta(self): return 'lok lok' def nemysli(self): return 'to sem magor' def vlastnosti(self): # jako tata, trochu jinak, ale navic nemysli return tata.vlastnosti(self) + ', ' + self.nemysli() fotr = tata() print fotr syn = synek() print syn Vypíše to: smoke, glgy glgy, do prdele smoke, lok lok, do prdele, to sem magor pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] class a subclass
Ještě jednou se vrátím k původnímu dotazu. Kdybych přece jen chtěl něco takového, abych u instance mohl dynamicky rozhodovat, jaká varianta metody se má volat (zda rodičovský kód nebo kód potomka) a kdyby se o tom mělo rozhodovat například zvnějšku, mohu použít prostředníka... mtip napsal(a): [...] class a: def prn(self): print 'a',self def ma(self): self.prn() class b(a): def prn(self): print 'b',self def ma(self): '''prekryje a.ma()''' a.ma(self) x=b() x.ma() vysledkem je print z metody b.prn, a ja bych potreboval aby byl a.prn Nadefinujeme referenci self.prnX, která bude obsahovat buď odkaz na rodičovský kód metody nebo na potomkův kód metody. Metoda ma() nebude volat prn() přímo, ale prostřednictvím prnX(). Budeme přepínat voláním funkce setPrn?(). Příklad: class a: def __init__(self): self.setPrnA() def prn(self): print 'a',self def setPrnA(self): self.prnX = a.prn def ma(self): self.prnX(self) class b(a): def __init__(self): a.__init__(self) self.setPrnB() def prn(self): print 'b',self def ma(self): '''prekryje a.ma()''' a.ma(self) def setPrnB(self): self.prnX = b.prn x=b() x.ma() x.setPrnA() x.ma() x.setPrnB() x.ma() Pokud se nepletu, tak se tomu po zobecnění říká Strategy Pattern nebo delegace (moc silný v teorii tady nejsem). Jde o to, že chci provádět nějakou činnost, která má pro mě jakýsi abstraktní význam (například tisk), ale teprve za běhu chci upřesnit, kterou variantu oné abstraktní operace budu chtít používat. (Lovím to z hlavy. Možná jsem tady trochu nepřesný.) pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos napsal(a): Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby bolo mozne namiesto f = open(data.txt) line = f.readline() while line: print line line = f.readline() f.close() napisat jednoducho ako v Perle a C++ f = open(data.txt) while line = f.readline(): print line f.close() Já raději píšu f = open(data.txt) for line in f: print line f.close() pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.next() (bylo Buducnost Pythonu: lambda, map, filter)
radek napsal(a): Avšak souhlasím s názorem, že soubory se čtou většinou po řádcích takže je to takto praktické ale mám z toho pocit vyjímky která se mi nelíbí. Problém je v tom, že zadrátovat do jazyka konstrukci, která ušetří několik písmenek je sice praktické, ale nedobré. Nechť je prostě všechni vidět. Pokud se soubory mohou číst i jinak, než po řádcích, což se děje velmi často, tak bych tyto zjednodušující konstrukce do jazyka vůbec nedával. Presne tak, priklady, jak by to vypadalo jinak: #cteni po radcich s defaultnim line oddelovacem (jak je ted) for line in file(data.txt).lines(): ... #cteni po radcich, ktere jsou oddelene oddelovacem br for line in file(data.txt).lines(br): [...] Ale definice, že řádek v textovém souboru je ukončen br jaksi není obecně přijímaná. Když chci, musím si to napsat sám a nebo použít odpovídající parser. Jan Matějka Ono obecnější řešení je udělat parsovací generátory, které by šly použít s čímkoliv file-like jako vstupním prametrem, a nestrkat parsování to objektu file. Tedy: [...] for line in lines(file(data.txt)): ... [...] atd. Výpočetní náročnost by zústala stejná. Generátory mi přijdou jako skvělý nástroj, škoda že se GvR brání zobecnění do více úrovní zanoření jenž nabízí stackless python. Ale vdyť mi nic nebrání zpracovávat soubor po znacích. # Vygenerujeme si testovaci textovy soubor. f = open('test.txt', 'w') for i in xrange(3): f.write('Line %d.\n' % i) f.close() # Pruchod po znacich. f = open('test.txt') c = 'init' while c != '': c = f.read(1) print c f.close() A nic mi nebrání napsat generátor, který vezme a bude vracet znaky a použít ho: def chargen(f): c = 'init' while c != '': c = f.read(1) yield c for c in chargen(file('test.txt')): print c A můžu si napsat jakýkoliv jiný generátor/parser. pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: překlad syndication feeds
Petr Messner Stejně kdo si v knize u RSS přečte, že je to syndikace, buď bude význam vědět proto, že RSS už zná, nebo mu nějaká syndikace neřekne vůbec nic. S tím souhlasím. Vím, co je RSS, ale s celým názvem jsem se setkal jen párkrát a asi bych si na něj nevzpomněl. A opravdu se mi pod tím nic logicky pochopitelného nevybavuje. Je to skoro jako kdyby to vymyslel microsoftí marketingový pracovník. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] printy v češtině na WINDOWS/cmd konzoli nečitelné
petrofF Bohužel, toto se týká jen příkazů print. Pokud použiju raw_input(uZadej jméno...) hodí to chybu Zdá se, že jde o starou chybu, kterou jsem hlásil vývojářům skoro před 5 lety. Mrkni sem http://www.py.cz/pipermail/python/2005-July/003022.html Jsou tam popsané projevy a možnost částečného řešení. Tenkrát se mi zdálo, že ten řešitel tak trochu strkal hlavu do písku. Šlo to nějak do ztracena. Už jsem to pak nesledoval. Ty odkazy uvnitř už asi nefungují. Jestli máš možnost, přejdi na poslední Python 2.6.x a zkus, jestli už to náhodou není opravené. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] printy v češtině na WINDOWS/cmd konzoli nečitelné
zu1234 Hynek Ve wydlích není žádná obdoba *nixových $LC_* proměných, ze kterých by to šlo zjistit za běhu? Zase někdo, kdo chce nás, chudáky windowsáky, nas..t! ... Prostě, ms-windows není systém a už vůbec ne operační. Je to produkt úspěšného marketingu. Ale vážně a k věci: někde na webu jsem potkal informaci že commandlajna pod ms-w nemusí jet v cp852. Že se to dá změnit na cp1250. Ale nezkoušel jsem to - mám se celkem rád! Ale... on to tak Hynek určitě nemyslel. Nezapomínejme na to, že ... až budou Windows hotové, bude to nejlíp dokumentovaný Unix na světě. Fakt je, že u Apple už to tak dopadlo. Ono to zas není tak horké a neustále omílat folklór... Programovat se dá skoro ve všem, i když je to někdy obtížnější, než tvrdit, že to nejde. Zkuste tohle v pythonovském shellu v cmd: import sys sys.stdout.encoding 'cp852' a zkuste totéž v IDLE (používá skutečné windowsovské okno...): IDLE 2.6.5 import sys sys.stdout.encoding 'cp1250' Takže odpověď zní sys.stdout.encoding, případně sys.stderr.encoding. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] printy v češtině na WINDOWS/cmd konzoli nečitelné
Do toho sitecustomize.py bych to necpal. Je to soubor v podstatě vázaný na počítač. Pokud by aplikace na něco takového spoléhala, nedala by se rozumně instalovat jinde. Přimlouvám se o naprostý přechod k Unicode -- jinak s tím bude problém vždycky. Nebo se musí přinejmenším neunicodový řetězec převést na Unicode řetězec (v kódování podle zdrojového textu) a při výstupu určit kódování přes sys.stdout.encoding nebo sys.stderr.encoding. Je to furt ten samý problém, že v Python 2.x takovýhle řetězec vlastně není řetězec, ale posloupnost bajtů. Vypořádává se s tím až Python 3, ale to nebrání tomu v Pythonu 2.x důsledně používat uunicode řetězce. Jedině ty jsou řetězci, se kterými se dá něco dělat z hlediska přenositelnosti. Petr petrofF Petr Přikryl petrofF Bohužel, toto se týká jen příkazů print. Pokud použiju raw_input(uZadej jméno...) hodí to chybu Zdá se, že jde o starou chybu, kterou jsem hlásil vývojářům skoro před 5 lety. Mrkni semhttp://www.py.cz/pipermail/python/2005-July/003022.html Jsou tam popsané projevy a možnost částečného řešení. Zkusil jsem místo explicitního volání: raw_input(s.encode(sys.stdout.encoding)) vytvořit soubor sitecustomize.py s předefinovanými vstupními funkcemi [ sitecustomize.py ] - change raw_input() and input() commands if console present (i.e. if sys.stdout.encoding is 'cp852') - modification of prompt argument proceed only if it is a unicode object (non-unicode object is treated unchanged) import sys if sys.stdout.encoding == cp852: try: import __builtin__ original_raw_input = __builtin__.raw_input original_input = __builtin__.input def raw_input(prompt=''): if type(prompt)==unicode: prompt = prompt.encode(sys.stdout.encoding) return original_raw_input(prompt) def input(prompt=''): return eval(raw_input(prompt)) raw_input.__doc__ = original_raw_input.__doc__ input.__doc__ = original_input.__doc__ __builtin__.raw_input = raw_input __builtin__.input = input except: import traceback; traceback.print_exc() - Skripty (s unicode literály) se v WinDOS okně zobrazují bezchybně. Jen si nejsem jistý jestli je úprava kompatibilní s různými běhovými prostředími (IDLE, PyWin, PyDev, konzole.py apod) -petroff- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] parsing souboru
Tomas Hnizdil Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC': 'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...} Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000 znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat cele do pameti, python ma spoustu sikovnych funkci, o kterych nevim, proto se ptam, zda to jde udelat nejak lepe ... Jak často se to má spouštět? Jak velký ten soubor je? V jakém kódování je? S jakou verzí Pythonu to má fungovat? Pokud je na jednom řádku zápis celého slovníku, normálně bych z toho udělal slovník (eval) a nedělal bych si s tím těžkou hlavu. Pokud se to nemá provádět velmi intenzivně, nemá smysl se zabývat optimalizacemi. Něco takového: a = {'a': 1, 'b': 2} a {'a': 1, 'b': 2} d = eval(a) d {'a': 1, 'b': 2} Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: překlad caching proxy?
Všechny zdravím a Slunce v duši (když už je tak zas...á obloha), Mám tu zase takový oříšek. Překládá se nějakým stručným českým pojmem nebo ne-příliš-moc-dlouhým-i-když-korektním-opisem anglický caching proxy v souvislosti s webovými službami? Dík, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] eval je nebezpečný, ale i užit ečný (bylo parsing souboru)
Tomas Hnizdil Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC': 'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...} Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000 znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat Petr Messner pokud to vypadá jako JSON, asi nejlepší bude použít na to nějakou knihovnu, jak už tu zaznělo. Další zmíněná možnost, eval, se mi moc nelíbí. Do stohu bych se sirkama taky nelezl a dětem bych nedával ostrý nůž na hraní. Je to záležitost volby. Pokud jde o utilitku narychlo, pro vlastní potřebu, je podle mě použití eval() bez problémů. Nebezpečnost eval() je úzce spojená se znalostí jeho vstupu. Pokud jsem schopen ohlídat, že tam nic špatného nepronikne, je to OK. Záleží na tom, kdo ten zpracovávaný soubor připravuje. Je jasné, že do webové služby by se to cpát nemělo. Modul json je od Python 2.6 mezi standardními moduly. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: překlad cache, hash
Zdravím všechny, Tohle je spíš pro lidi, kdo kromě vlastního názoru mají i nějakou zkušenost... Co to je cache a hash ví (aspoň přibližně) každý, kdo trochu k počítačům čuchnul. Není to problém chápat, není problém to používat v hovoru keš, heš. Problém je rozlišit folklór a slang od něčeho, co snese papír knížky. hash -- ve smyslu speciální hodnoty, která vzniká jako příznak zpracovaného obsahu. (Příbuzné přejaté slovo hašé -- sekané maso...) cache -- vyrovnávací paměť (spíš u hardware), ale také mechanismus použití obsahu (rozhodnutí, kdy použít a kdy ne, kdy získat novou hodnotu ze zdroje... ve smyslu funkce HTTP protokolu, např.) Teď ta otázka... Jak ty pojmy psát česky? Kde, při jakých příležitostech, ... jste nějaké české pokusy viděli? Není to věc logiky. Chce to sebrané zkušenosti a braingstorming (tj. klidně i blbosti ;) Díky, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: překlad cache, hash
Galloth Hash function se do cestiny preklada jako rozptylovaci funkce. Nedavno jsem si ale delal nejake experimenty na google a zjistil jsem, ze nejcasteji se proste pise hashovaci funkce, coz i mne prijde rozumne. Ano. Ten pojem je OK, ale to, co potřebuju, je to trošku něco jiného. Pojem rozptylovací funkce se používá v souvislosti s vyhledávacími tabulkami (hash table), kde se snažíme o rovnoměrné rozptýlení hodnot do celočíselného intervalu. Tady jde spíš o to, že se z velkého vzorku dat vyrobí malý příznakový vzorek, podle kterého se dá identifikovat ten velký. V tomto smyslu nemusí být (a nebývá) hash hodnota celočíselná. V takových souvislostech ale ztrácí smysl pojem rozptylovací funkce. Svůj pohled, který s pojmem rozptylovací funkce souvisí, jsem kdysi vyjádřil tady http://www.skil.cz/python/cztuttrn.html#Pdata_hash Ale například u HTTP protokolu se hash dokumentu používá jako příznak konkrétního obsahu dokumentu. Je to trošku něco jiného. Nemusí to být hodnota kvalitně rozptýlená. Musí to být hodnota, která je pokud možno 1 : 1 přiřaditelná k řetězci, z kterého vznikla. Jsou na ni tedy jiné nároky. Na rozdíl od vyhledávacích tabulek nechceme vůbec připustit možnosti kolize (pokud možno žádná synonyma). Dá se to sice různě opsat, ale je to natolik frekventované a specifické slovo, že se pak stejně za opis musí napsat do závorky hash. O cache to platí ještě víc (ještě frekventovanější) -- alespoň v tom, co překládám. U cache moc nevim, ale nevim proc by se u HTTP protokolu take nemohlo pouzit vyrovnavaci pamet, funguje to preci uplne stejne jako v tom HW. Kdyz mate v Hardware viceprocesorovy system, tak vyrovnavaci pamet musi zajistit , zda obsahuje aktualni data, coz je presne to same, co popisujete u HTTP, nebo ne? Princip vyrovnavaci pameti spociva v tom, ze je rychlejsi nez vlastni zdroj a pouzije se tedy vzdy, kdyz obsahuje platna data. Ano. Asi je to úplně stejné (z abstraktního hlediska). Používání je trochu komplikovanější, než u hardware (složitější pravidla), ale principiálně to tak je. Problém je, jak rozumně překládat třeba caching (jako činnost), caching headers (jako relativně stručné označení něčeho konkrétního). Každopádně díky za příspěvek, Petr Petr Přikryl Co to je cache a hash ví (aspoň přibližně) každý, kdo trochu k počítačům čuchnul. Není to problém chápat, není problém to používat v hovoru keš, heš. Problém je rozlišit folklór a slang od něčeho, co snese papír knížky. hash -- ve smyslu speciální hodnoty, která vzniká jako příznak zpracovaného obsahu. (Příbuzné přejaté slovo hašé -- sekané maso...) cache -- vyrovnávací paměť (spíš u hardware), ale také mechanismus použití obsahu (rozhodnutí, kdy použít a kdy ne, kdy získat novou hodnotu ze zdroje... ve smyslu funkce HTTP protokolu, např.) Teď ta otázka... Jak ty pojmy psát česky? Kde, při jakých příležitostech, ... jste nějaké české pokusy viděli? Není to věc logiky. Chce to sebrané zkušenosti a braingstorming (tj. klidně i blbosti ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: překlad cache, hash
mimi.vx Visgean Skeloru Petr Přikryl Co to je cache a hash ví (aspoň přibližně) každý, kdo trochu k počítačům čuchnul. Není to problém chápat, není problém to používat v hovoru keš, heš. Problém je rozlišit folklór a slang od něčeho, co snese papír knížky. ... Teď ta otázka... Jak ty pojmy psát česky? Kde, při jakých příležitostech, ... jste nějaké české pokusy viděli? Hmm, podle mně je překládání těchhle konkrétních slov nesmysl - většina textů stejně používá anglické výrazy a tak čtenář nepochopí českou variantu, popřípadě nováček který se s pojmi setká poprvé (ať už v anglické či české verzi) tak bude později zmaten. Taktéž pro dohledávání informací je mnohem lepší angličtina než čeština... take bych zrovna tyhle slova neprekladal . Souhlasím s tím, že většina anglických textů používá anglické výrazy, ale v českých textech jsem se s nimi právě nesetkal. Slova cash a hash -- kdyby byla takhle zapsána v textu -- jsou neohebná (nesklonná). Fonetický přepis cizích slov do češtiny se nepoužívá tak často, jako v jiných jazycích (třeba v ruštině). Pokud někdo ten pojem nezná, je pro něho jak anglický originál, tak český přepis nesrozumitelný. Nejde jen o srozumitelnost ve smyslu vím o co jde. Jde o to, že člověk, který se v té oblasti rutinně nepohybuje, musí v okamžicích uvedené těchto slovíček chvíli přemýšlet nad něčím jiným, než nad hlavní linkou zapsané myšlenky. Pokud někdo bravurně ovládá angličtinu, pak si to jistě přečte v originále. Překlad je pro ty ostatní. Takže nepřekládat není přijatelný návrh ;) Díky za vaše hlavolámání, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: Cache -- rozuzlení? Hash -- dal ší poznámky (bylo překlad cache, hash)
Vladimir Macek Petr Přikryl wrote: hash -- ve smyslu speciální hodnoty, která vzniká jako příznak zpracovaného obsahu. Hešovací je použitelné a intuitivní. Myslím, že originální hash angličtina považuje za přídavné jméno a my bychom se toho měli držet. Slangově je to zkráceně a nesprávně. Problém je v tom, že v anglickém slovníku najdeme, že je to buď podstatné jméno nebo sloveso. Přídavné jméno to je tím pádem automaticky taky. Slangové heš vychází přímo z angličtiny a bere to jako nesklonné slovo. Těžko říct, jestli je to nesprávné, protože není ustanovené to správné. Je jasné, že nějaké slovíčko nakonec vznikne a i tahle debata bude možná plivancem do moře názorů, z jehož pěny se to nakonec zrodí, jako Venuše. (Ku..a, to jsem dnes básník, asi mi z toho překládání už hrabe ;) Krypto otisk (např. SHA-1) využívá rozptylovacích/rozmítacích schopností dané hešovací funkce pro zajištění svých bezp. principů (jako krypto-laik to tak cítím), takže i výrazivo je propojené s hešovací tabulkou. Samotné slovo otisk jasně vyjadřuje, že se o tom někdy bavíme jako o podstatném jméně. Nějak mi uniká souvislost například SHA a hešovací tabulky (tj. rozptylovací funkce). Rozptylovací funkce má jako pojem smysl (podle mého názoru), když se získá celočíselný index, kterým se přímo dostaneme na referenci synonym v poli. Jinými slovy, tento zúžený pohled souvisí s jedním z možných přístupů při implementaci vyhledávací tabulky. Samotný název hešovací tabulka je tedy do jisté míry speciální a v zájmu obecnosti a jako praktický projev zapouzdření bychom jej asi neměli používat jindy, než když se bavíme o tomto konkrétním způsobu implementace vyhledávacích tabulek. Výraz příznak je podle mě mimo. Jde o otisk o pevné velikosti, který nenaznačuje, ale skutečně nese užitečnou identifikační informaci. Ano. Slovo příznak jsem použil záměrně trochu blbě. Hash (jako podstatné jméno) bývá vytvářen právě s cílem jednoznačně identifikovat zpracovaný obsah zhuštěným způsobem (paměťově menší náročnost), ale pokud možno tak, aby to byla identifikace jednoznačná (v nějakém kontextu). Požadavek na jakékoliv jiné vlastnosti je vlastně zúžením obecnosti. cache -- vyrovnávací paměť (spíš u hardware), ale také mechanismus použití obsahu (rozhodnutí, kdy použít a kdy ne, kdy získat novou hodnotu ze zdroje... ve smyslu funkce HTTP protokolu, např.) Vždy se mi líbil výraz mezipaměť. Je to krátké, výstižné a ohebné. Mezipaměť mě osobně velmi překvapila, protože se používá hojně (viz google statistika pro lenochy) -- díky moc. Trochu jsem si při tom uvědomil, proč mi někdy nesedí pojem vyrovnávací paměť -- viz dále. Mechanismus použití obsahu nechápu. Cache má přece stejný princip v HW i v SW, tedy i u HTTP. A ten pojem navíc chápu tak, že hlavní je to paměťové úložiště a nikoli algoritmy, které ho řídí. Souhlasím i nesouhlasím. Záměr cache je opravdu stejný u SW i u HW. Pohled na to, jestli jde o datový prostor, algoritmus nebo obojí... Je v tom skrytá dualita -- jako u všech programů z předobjektové doby: Data + Algorithm = Program. Má-li být cache transparentní, pak je nutné k té paměti přidat i ty algoritmy. V pojmech výstavby systému vystupuje cache jako podsystém (objekt) s vlastnostmi agenta. To znamená, že zprostředkovává funkčnost. Jak datová stránka, tak stránka algoritmická ovlivňují celkové chování agenta. Teď k tomu mezipaměť versus vyrovnávací paměť. Když se řekne vyrovnávací paměť a nepřijmu to slepě jako pojem (tj. jsem jako nováček a slyším to jako poprvé a poprvé se nad tím zamýšlím), sedí mi to spíš k situaci, kdy zdroj informací produkuje data nárazově a chci data odebírat plynule (nebo podobně v opačném směru). Něco takového, jako dělá přehrada s vodním tokem. Když se řekne cache ve významu použií například v protokolu HTTP, představuji si to spíš jako něco trochu jiného. Jako skutečně příruční skladiště informací, které potřebuji často. Příkladem z reálného života může být studium z knížek při využití knihovny -- jednak veřejné knihovny a jednak knihovny ve smyslu poliček v pokoji. Některé věci je dobré studovat přímo ve veřejné knihovně, pár knížek si rád na chvíli půjčím domů. V tomto smyslu mi mezipaměť přijde výstižnější a lépe odpovídající pojmu cache, který mi připadá trochu obecnější než vyrovnávací paměť. Vyrovnávací paměť je v tomto smyslu obecnějším případem mezipaměti. Díky moc za podnětný příspěvek, Petr P.S.: Víc hlav -- víc zelí. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: překlad cache, hash
Visgean Skeloru Mimochodem, bude u těch překladů i anglický ekvivalent jako to má například wikipedia? Ano, určitě. Pokud to není jasný pojem (jako například list = seznam), uvádím v závorce originál. Uvádím jej i opakovaně v místech, kde by to čtenáři mohlo usnadnit nebo upřesnit chápání toho, o čem se mluví. Ale na druhou stranu by to zase neměl být dvojjazyčný román, takže se snažím to nepřehánět. Vzhledem k licenci textu by celý překlad měl být také zveřejněn na webu. Zatím nevím kde a kdo se o to postará, ale počítám s tím, že by měl být rovněž živý -- jako originál. To znamená, že bude prostor pro dodatečné opravy a úpravy v návaznosti na další připomínky. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] printy v češtině na WINDOWS/cmd konzoli nečitelné
petrofF Problém s Unicode v IDLE: ... print učeské_unicode se zobrazí správně jen pokud je vykonán spuštěním modulu (kde se vyskytuje) Pokud zadám přímo v IDLE-příkazovém interpretu např.: uDia = u'ěščřžýáíéóúůďťňĚŠČŘŽÝÁÍÉÓÚŮĎŤŇ' print uDia výsledek je: ìèøýáíéóúùïòÌÈØÝÁÍÉÓÚÙÏÒ Nevím proč tomu tak je: getdefaultencoding()ascii sys.stdin.encoding cp1250 sys.stdout.encoding cp1250 (platí jak v interaktivním režimu tak i při Run Module) [IDLE version 1.2 Python version 2.5] A zda se s tím nedá něco udělat - konfigurace, nová verze... Můžu potvrdit i pro Python 2.6.5. Odhaduji, že chyba je přímo v konzolovém okně IDLE. Řetězec naklofaný v okně to chybně převádí do Unicode -- pravděpodobně vnitřně používá nějaké jiné kódování. Stálo by za to nahlásit to jako chybu (pokud už to není nahlášené). Přikládám obrázky se sejmutými IDLE konzolemi z 2.6.5 a 3.1.2 P. attachment: py26.pngattachment: py31.png___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: preklad cookies
Ahoj všeci, Co se týká překladu cookies, ptám se spíš ze zvědavosti. Jednak se to v překládaném textu vyskytuje minimálně a jednak je to tak speciální věc, že neuškodí nechat to v původním tvaru. Přesto... Setkali jste se někdy s nějakým překladem? Díky a mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: preklad cookies
__ Hynek Fabian Vladimir Macek (úterý 11 Květen 2010 14:29:50): Ano, při překladu pro Microsoft (a ten měl hodně striktní pravidla) byla striktní instrukce překládat jako soubor cookie. Nepřijde mi to až tak špatné. Výsledek je jedno špatně zvolené slovo (cookie není soubor) a jedno nepřeložené slovo. Nepřijde mi to až tak dobré. Možná je to trošku nedorozumění. Cookie sice není soubor, ale soubory pro ukládání cookie existují. Záleží na tom, v jakém kontextu se o tom mluvilo. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: Překlad Dive Into Python 3 -- n ázory
Všechny Vás zdravím, Jestli ze strany CZ.NIC bude zájem, rád bych ovlivnil formu tištěné podoby knihy. Jako členové tohoto mailing listu patříte mezi výraznější uživatele Pythonu. Mnozí z Vás učí a možná budete chtít přeložený text používat ve výuce... Podle mého názoru jsou ČR (+SK) dost malé země na to, abychom si tu mohli dovolit experiment uplatněný v originálu -- vytisknout takové PDF, jaké si můžete stáhnout. Jde o to, že jde o konvertované HTML stránky se vzhledem stejným, jako v prohlížeči. Podle mého názoru je to naprosto nevhodné pro tištěnou knihu. A potvrzují to i recenze lidí, co si to koupili na Amazon. Když si přimyslíte pár obrázků (podkapitola věnovaná instalaci a pak HTTP web services), musí se při sazbě zvládnout něco takového http://diveintopython3.org/unit-testing.html#romantest2 Klíčové jsou Pythonovské zdrojáky s těmi zakroužkovanými čísílky (nebo něco odpovídajícího). Máte nějaké návrhy? Je to naprosto orientační dotaz, protože to následné zpracování a sazba jde trochu mimo mě a nevím, zda má CZ.NIC v tomto směru zájem o spolupráci. Podle mého názoru je text typograficky jednoduchý a měl by se vysázet automaticky, přímo z HTML. Máte nějaké zkušenosti, nápady... Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: Překlad Dive Into Python 3 -- n ázory
Vladimir Macek Petr Přikryl wrote: Máte nějaké zkušenosti, nápady... Podle ticha mám dojem, že nejsem sám, kdo zcela nepochopil, o co Vám jde. Ne že bych nechtěl přispět nápady... :) No, v době psaní jsem na tom asi nebyl nejlíp :) Vezmu to polopaticky. Zkuste si stáhnout PDF z http://diveintopython3.org/d/diveintopython3-pdf-latest.zip Podívejte se na to (je to klikací PDF) a pouvažujte nad tím, jestli byste si koupili knihu, která vznikne vytištěním takového PDF (tj. že se např. z hypertextových odkazů stanou jen podtržené texty). Pak si zkuste stáhnout http://diveintopython.org/download/diveintopython-pdf-5.4.zip, tj. starší verzi knihy pro Python 2, a porovnejte. Podívejte se v Dive Into Python 3 na množství úryvků programů, zamyslete se nad Pythonem vyžadovaným formátováním a zvažte, jak by to dopadlo, kdyby se to sázelo ručně. Podobné úvahy mě vedou k závěru, že to HTML by se mělo převést do tvaru vhodnějšího pro sazbu tištěné knihy a ne to jen do knihy vytisknout. Vzhledem k členitosti textu by se to mělo převést a vysázet strojově (tj. například přechroupat do LaTeXu). Mám s tím nějaké zkušenosti, ale už asi 10 let jsem s LaTeXem nedělal. Mým úkolem byl překlad, ale tuším, že by ta následná sazba nemusela dopadnout dobře, tak hledám někoho, kdo má s něčím takovým zkušenosti. Je to naprosto orientační dotaz, protože přesné záměry CZ.NIC neznám. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] OT: Překlad Dive Into Python 3 -- n ázory
David Rohleder Petr Přikryl píše v Čt 20. 05. 2010 v 08:32 +0200: Vladimir Macek Podle ticha mám dojem, že nejsem sám, kdo zcela nepochopil, o co Vám jde. Ne že bych nechtěl přispět nápady... :) Podobné úvahy mě vedou k závěru, že to HTML by se mělo převést do tvaru vhodnějšího pro sazbu tištěné knihy a ne to jen do knihy vytisknout. Vzhledem k členitosti Osobně jsem určitě za normální vysázení v něčem typografickém. CZ.NIC už vydal IPv6 od Pavla Satrapy a ta kniha je dost dobře vysázená. Nicméně Pavel to patrně sázel sám, mám pocit, že spíš v nějakém docbooku, ale nejsem si úplně jistý. Asi by stálo za to, se zeptat, jak to teda vlastně dělali. Nejsem z CZ.NIC v přímém kontaktu. Vím jen, že to po Českých překladech chtěli ve Wordu, aby to jejich grafik jen trochu upravil Domyslete si to sami ;) Pokud tam někdo máte známé, poptejte se, navrhněte... P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buffer overflow na Win7?
nefunguje ani takovyto obycejny priklad: t = file('blabla.txt', 'a+') t.write(Lorem ipsum dolor sit amet) print t.read() t.close() Ocekaval jsem, ze se vypise prazdny retezec (vzhledem k tomu, ze se snazim cist na konci souboru). Tento priklad ale opakovane a bez vyjimky do konzole vypise nekolik kB binarnich dat, mezi kterymi dokazu identifikovat napriklad jmena ostatnich souboru v aktualnim adresari - predpokladam, ze mi python zobrazil cast surovych dat filesystemu. Můžu potvrdit stejné chování s Python 2.6.5 na Windows Vista. t = file('blabla.txt', 'a+') t.write(Lorem ipsum dolor sit amet) t.seek(0) print t.read() t.close() V teto verzi jsem pridal pred read seek. Zde bych ocekaval, ze print vypise tentyz text, ktery jsem do souboru zapsal. Skript ale vypise vyjimku IOError: [Errno 9] Bad file descriptor Tohle mi funguje pod Vistama s Python 2.6.5 i s Python 2.7. On to ale asi není obyčejný příklad. Problém je asi v tom a+ režimu (stejně se to chová i při w+) a v současném použití .read(). Dokumentace říká: Note: This function is simply a wrapper for the underlying fread() C function, and will behave the same in corner cases, such as whether the EOF value is cached. To znamená, že to může mít co do činění s použitím vyrovnávacího bufferu, který může být v Linuxu a pod Windows obsluhován jinak a díky fread() a zmíněným hraničním případům se to tedy může jinak chovat. Zkus tohle: t = open('blabla.txt', 'a+', buffering=0) t.write(Lorem ipsum dolor sit amet) ## t.seek(0) print t.read() t.close() Jde o přidání parametru buffering=0. Poznámka: Pro otvírání souboru by se měla používat funkce open() a ne file(). V Python 3 file() neexistuje. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buffer overflow na Win7?
To znamená, že to může mít co do činění s použitím vyrovnávacího bufferu, který může být v Linuxu a pod Windows obsluhován jinak Takze to znamena, ze Windowsi fread() obsahuje buffer overflow? OK, chapu, nemusi to byt chyba pythonu, ale v takovem pripade to je snad jeste horsi. Je to asi chyba v Pythonu, protože Python by neměl takovou situaci dovolit. Dokumentace ale svým způsobem na tento nedodělek upozorňuje. V Pythonu 3 už to funguje. Co se tyka toho 'a+', zkousel jsem to i s jinymi R/W mody, ale vysledek stejny. Znamena to, ze Windows ma z nejakeho duvodu problem s obousmerne otevrenym souborem? Bavil jsem se o tom s kolegou javistou, ktery tvrdi, ze treba v Jave vubec koncept R/W souboru neni (udajne jsou jen R nebo W streamy). Tak me napadlo, ze to je proste jejich workaround pro platformove specificke problemy s praci se soubory. Ona je to taky trochu koncepční záležitost. Když je soubor otevřen pro připisování na konec, jak lze správně rozhodnout, že soubor už skončil? Pokud chci použít operaci přečti soubor až do konce souboru, je takový požadavek vůbec korektní? Další zádrhel, který by v tomto případě mohl hrát roli, je rozlišování binárního a textového otevření souboru. Je všeobecně známé, že řada vývojářů pod Unixem na rozlišování kašle, protože obsah souboru v ASCII načteme stejně, ať se to otevře v textovém nebo v binárním režimu. V textovém režimu se taky z důvodů kompatibility interpretuje Ctrl-Z jako EOF. V současnosti ale asi nikdo explicitně do souboru jako EOF znak Ctrl-Z necpe. Je možné, že implementace interpretace EOF můžou být různě zprasené. Otvírání textových souborů pro současné čtení a zápis je ale taky problematické, protože textové soubory už často bývají v UTF-8 a seek lze dělat jen velmi opatrně. Jediný spolehlivý způsob je chovat se k souboru jako k stream. Java je UNICODE, takže odtud může pramenit rozhodnutí nedělat podobné low-level prasárny jako seek v textovém souboru. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file type v python3
Diky za zajimavy postreh, o absenci file() v python3 jsem netusil. Vzhledem k tomu, ze me dopredna kompatibilita zajima to budu muset resit. Jak lze v python3 resit nasledujici konstrukci? class test(file): def test(self): return 'test' g = test('pokus.txt', 'w') Mym cilem je vytvorit objekt, ktery dokaze dedit po libovolnem file-like objektu, ktery pouziva jako vlastni cache. Dedicnost resim dynamicky pouzitim type() a definovanim noveho typu v runtime. Zni to na prvni pohled trochu desive, ale myslim, ze pro to mam rozumne duvody. Abych toho ale dosahnul, potrebuji znat typ nebo classu standardniho souboru. Instance objektu nad otevrenym souborem mi pochopitelne nestaci. Nemám osobní pracovní zkušenost, ale Python 3 má nový modul io -- viz http://docs.python.org/py3k/library/io.html#module-io Zabudovaná funkce open() je teď alias na io.open(). V tom modulu jsou nějaké bázové třídy... Bude nutné nastudovat. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buffer overflow na Win7?
No vida. Víc hlav, víc zelí. Fuguje to ;) Michal Molhanec napsal [...] MSDN: When the r+, w+, or a+ access type is specified, both reading and writing are allowed (the file is said to be open for update). However, when you switch between reading and writing, there must be an intervening fflush, fsetpos, fseek, or rewind operation. The current position can be specified for the fsetpos or fseek operation, if desired. tzn. t = file('blabla.txt', 'a+') t.write(Lorem ipsum dolor sit amet) t.flush() print t.read() t.close() [...] Zkousel jsem kde co - no hlavne jste nezkousel precist si MSDN :-) No, já se zase tak moc nedivím. Kdybych dělal hlavně pod Linuxem, tak bych možná nevěděl, co to MSDN je. Ne nadarmo se kdysi říkalo, že až budou Windows jednou hotové, bude to nejlépe dokumentovaný Unix na světě. :) Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] pomoc v pythone
Musíš si to odřádkovat :-) Pro doplnění, příkaz print si přidává konec řádku sám a dá se přesměrovat i do souboru. Přesto bych ale dal přednost tomu subor.write(...) Před subor.close() napiš subor.write('rn') nebo, což je korektnější, subor.write(os.linesep), nezapomeň někde nad tím uvést import os. os.linesep obsahuje oddělovač řádků - na Windows tam bude rn, na Unix-like systémech (tj. skoro všude jinde) n. Mimochodem, existuje ještě jedna možnost - otevřít souboru v režimu universal newline support a jako oddělovač řádku psát jen n, ono by se to pak mělo na Windows na rn převést samo. (To, že jedeš na Windows, odvozuji ze sleepu na konci.) Toto není přesné. Pokud je soubor otevřen pro zápis v textovém režimu (což platí vždy, když se to mode neuvede 'b'), pak se 'n' automaticky převádí na posloupnost pro konec řádku používaný v daném operačním systému. Hraní si s os.linesep má smysl jen v případě, kdy si soubor záměrně otevřeme pro ČTENÍ v BINÁRNÍM režimu. Universal Newline Support se používá jen při otvírání textových souborů pro čtení (režim 'rU). Pak je jedno, v jakém OS byl soubor vytvořen. subor=file(nazov,'a') Pro otvírání souboru používej open(). Volání jakoby konstruktoru objektu typu file() již například v Python 3 není možné. Takže pokud byly file() a open() v Pythonu 2 synonyma (vždy se ale doporučovalo používat open()), v Pythnonu už file() způsobí chybu. Měj se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] pomoc v pythone
Ten mailer (mail.atlas.cz) z toho vyházel zpětná lomítka. Před 'n' jako koncem řádku má být zpětné lomítko. (Možná když to při psaní zdvojím? '\n') __ Od: Petr Přikryl prik...@atlas.cz Komu: Konference PyCZ python@py.cz Datum: 26.07.2010 07:32 Předmět: Re: [python] pomoc v pythone Musíš si to odřádkovat :-) Pro doplnění, příkaz print si přidává konec řádku sám a dá se přesměrovat i do souboru. Přesto bych ale dal přednost tomu subor.write(...) Před subor.close() napiš subor.write('rn') nebo, což je korektnější, subor.write(os.linesep), nezapomeň někde nad tím uvést import os. os.linesep obsahuje oddělovač řádků - na Windows tam bude rn, na Unix-like systémech (tj. skoro všude jinde) n. Mimochodem, existuje ještě jedna možnost - otevřít souboru v režimu universal newline support a jako oddělovač řádku psát jen n, ono by se to pak mělo na Windows na rn převést samo. (To, že jedeš na Windows, odvozuji ze sleepu na konci.) Toto není přesné. Pokud je soubor otevřen pro zápis v textovém režimu (což platí vždy, když se to mode neuvede 'b'), pak se 'n' automaticky převádí na posloupnost pro konec řádku používaný v daném operačním systému. Hraní si s os.linesep má smysl jen v případě, kdy si soubor záměrně otevřeme pro ČTENÍ v BINÁRNÍM režimu. Universal Newline Support se používá jen při otvírání textových souborů pro čtení (režim 'rU). Pak je jedno, v jakém OS byl soubor vytvořen. subor=file(nazov,'a') Pro otvírání souboru používej open(). Volání jakoby konstruktoru objektu typu file() již například v Python 3 není možné. Takže pokud byly file() a open() v Pythonu 2 synonyma (vždy se ale doporučovalo používat open()), v Pythnonu už file() způsobí chybu. Měj se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] issue a spol.
Zdravím, Poraďte mi prosím, jak přeložit sousloví issue tracker. Bude to něco jako seznam problémů. Máme český adekvát? Překládám teď Producing Open Source Software http://producingoss.com/ a tam se zas vyskytuje bug tracker s tím, že mnohdy ty nástroje splývají. Přeložil jsem to zatím jako systém pro sledování chyb s uvedením bug tracker v závorce. Slovo issue tady asi znamená problém, ale jistý si tím nejsem. Jsem toho názoru, že tyhle věci čtou lidi, kteří aspoň tuší, o co jde. Issue tracker se tam asi taky nebude vyskytovat mnohokrát. Pokud ten překlad není úplně ujetý a sem tam se do závorky (podle uvážení) uvede anglický originál, asi ti nikdo nadávat nebude. Ještě mě napadlo: Jak to dopadlo s překladem Dive into Python 3, lze jej někde číst? Je to přeložené už skoro čtvrt roku, ale zatím to není dostupné. Sází se to a bude to k dispozici v PDF. Už je to mimo moje ruce, takže s tím víc neudělám. Měj se, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] nechtene propojeni mnozin
Hynek Fabian napsal... Pol, Leos (Thursday 14 October 2010 12:56:13): Fuj, takhle pisou ceckari :-) R0 = list(range(8)) Fuj, proc z listu znova delat list ;-) Protoze jsem se kdysi davno nekde docetl o planech sloucit range() a xrange(), a zvykl jsem si v ramci dopredny kompatiblility explicitne si delat list tam kde chci vic nez jen iterovat pres generator. Plany byly bud zavrzeny nebo uplne blby, nevim, ale zvyk mi uz zustal. A ted me omluvte, jdu se stydet do kouta. Není zač se stydět. V Pythonu 3 to tak skutečně je. Funkce range() je generátorová funkce a samo to seznam neudělá. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Generator prvku ridke matice (bylo ... nechtene propojeni mnozin)
Pro Python 2.x by se to dalo ještě upravit (viz dole). Jirka Vejrazka napsal for i in [(a,b) for a in range(1,10,2) for b in range(5,20,5)]: Kdyz tady pouzijes na krajich kulate zavorky misto hranatych, tak se to nevyrobi cele v pameti, ale vznikne generator, ktery se pak da pouzit uplne stejne pro for cyklus: Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. | x = [(a,b) for a in range(1,10,2) for b in range(5,20,5)] | x | [(1, 5), (1, 10), (1, 15), (3, 5), (3, 10), (3, 15), (5, 5), (5, 10), (5, 15), | | x = ((a,b) for a in range(1,10,2) for b in range(5,20,5)) | x | a.py == g = ((a,b) for a in xrange(1,10,2) for b in xrange(5,20,5)) def genFunc(x, y): for a in xrange(1, x, 2): for b in xrange(5, y, 5): yield (a, b) for t in g: print t, print print '-' * 60 for t in genFunc(10, 20): print t, == Místo range() použij xrange() -- i když tady ta úspora je maličká (jen z principu). To je ten generátor přiřazený do g -- jak ukazoval Jirka. Generátorová funkce genFunc vrátí stejný generátor. Je to jiné jen syntakticky. Tady jsou navíc doplněny jen parametry, aby se to dalo použít pro různé hodnoty x a y a nemuselo se to furt opisovat. Zavoláním genFunc vznikne podobný generátor, jako g. U mě to zobrazí následující: == C:tmppython a.py (1, 5) (1, 10) (1, 15) (3, 5) (3, 10) (3, 15) (5, 5) (5, 10) (5, 15) (7, 5) (7, 10) (7, 15) (9, 5) (9, 10) (9, 15) (1, 5) (1, 10) (1, 15) (3, 5) (3, 10) (3, 15) (5, 5) (5, 10) (5, 15) (7, 5) (7, 10) (7, 15) (9, 5) (9, 10) (9, 15) == Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] jmeno pro [neco for neco] (bylo nechtene propojeni mnozin)
MICHÁLEK Jan Mgr. napsal [...] Jde tedy to nějak vymyslet, abych udělal ten generátor, kterej si bude pamatovat jen aktuální hodnoty x a y, aniž bych musel použít smyčku?? Ta věc [něco for něco] (menuje se to generátor pole??) Anglicky se to jmenuje list comprehension, čili skládač seznamu. V překladu Dive Into Python 3 jsem ve spolupráci se zdejšími borci dospěl k českému... 5.3 GENERÁTOROVÁ NOTACE SEZNAMU Generátorová notace seznamu (anglicky list comprehension [list komprihenšn]) umožňuje stručný zápis vytvoření seznamu z jiného seznamu aplikováním funkce na všechny prvky zdrojového seznamu. (Poznámka překladatele: Pojem „list comprehension“ je znám z deklarativních jazyků a má charakter syntaktické konstrukce. V jazyce Python se „vnitřku“ deklarativního zápisu podobá generátorový výraz. Tímto způsobem byl odvozen český pojem „generátorová notace“. Někdy je pojem „list comprehension“ použit v procedurálním, dynamickém smyslu. V takové situaci můžeme uvažovat o pojmu „generátor seznamu“. Pokud se bavíme o jeho výsledku, můžeme uvažovat i o pojmu „generovaný seznam“. Vzhledem k tomu, že zavedený český pojem pro tuto konstrukci asi neexistuje — studentům příslušných oborů vysokých škol přijde po krátké chvíli anglický pojem srozumitelný —, budu volněji používat některou z uvedených variant. Někdy budu poněkud dlouhý pojem „generátorová notace seznamu“ zkracovat. Kritériem volby bude dobrá srozumitelnost.) Podobně existuje dictionary comprehension a set comprehension. Nebo to jde nějak občůrat (například použít místo range() generátor)?? Už jsem to posílal jako reakci na odpověď Jirky, ale ono Ctrl-V zase tolik práce nedá ;) g = ((a,b) for a in xrange(1,10,2) for b in xrange(5,20,5)) def genFunc(x, y): for a in xrange(1, x, 2): for b in xrange(5, y, 5): yield (a, b) for t in g: print t, print print '-' * 60 for t in genFunc(10, 20): print t, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] co se stalo s Dive into python ?
Překlad jsem odevzdal asi v půlce července. Pokud vím, probíhá sazba, ale to už jde úplně mimo mě a netuším v jakém je to stavu ani jakou to bude mít podobu. Neznám ani temín vydání. Elektronická podoba bude zveřejněna nejspíš až po vydání papírové knihy. V podstatě se mi podařilo dosáhnout stejné formy, jako u originálu (HTML i PDF přes Prince). Tuto formu ale nepovažuji za vhodnou pro přímý tisk knihy. Navrhuji zeptat se prostřednictvím http://knihy.nic.cz/ -- vpravo nahoře najdete: Pište pro edici Pokud máte připravené texty nebo se chystáte odbornou knihu napsat, a chtěli byste na jejím vydání spolupracovat, obraťte se na nás na e-mailové adrese kont...@nic.cz; do předmětu zprávy uveďte heslo „knihy.nic.cz“. Odkažte se, že reagujete na http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive-into-python-3/ a zeptejte se na termín. Měj se fajn a přeju krásné svátky, Petr __ Od: Ondrej Beranek Komu: Konference PyCZ Datum: 16.12.2010 08:11 Předmět: [python] co se stalo s Dive into python ? Ahoj chtěl bych se zeptat jako to s touhle knihou dopadlo ? je hotova ? da se koupit ? stahnout ? rad bych si ji nechal dat k vanocum :D ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] co se stalo s Dive into python ?
Byl to Jiří Znamenáček? __ Od: Jakub Vysoky Komu: Konference PyCZ Datum: 16.12.2010 08:54 Předmět: Re: [python] co se stalo s Dive into python ? tuhle prvni stredu v mesici na srazu pratel dynamickych jazyku rikal jeden z prichozich (ktery ma zrejme s temito veci v nic.cz neco spolecneho), ze by kniha mela byt brzo vydana. ale bohuzel o terminu take nic nevim. muzu se zkusit pozeptat.. 2010/12/16 Petr Přikryl : Překlad jsem odevzdal asi v půlce července. Pokud vím, probíhá sazba, ale to už jde úplně mimo mě a netuším v jakém je to stavu ani jakou to bude mít podobu. Neznám ani temín vydání. Elektronická podoba bude zveřejněna nejspíš až po vydání papírové knihy. V podstatě se mi podařilo dosáhnout stejné formy, jako u originálu (HTML i PDF přes Prince). Tuto formu ale nepovažuji za vhodnou pro přímý tisk knihy. Navrhuji zeptat se prostřednictvím http://knihy.nic.cz/ -- vpravo nahoře najdete: Pište pro edici Pokud máte připravené texty nebo se chystáte odbornou knihu napsat, a chtěli byste na jejím vydání spolupracovat, obraťte se na nás na e-mailové adrese kont...@nic.cz; do předmětu zprávy uveďte heslo knihy.nic.cz. Odkažte se, že reagujete na http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive-into-python-3/ a zeptejte se na termín. Měj se fajn a přeju krásné svátky, Petr __ Od: Ondrej Beranek Komu: Konference PyCZ Datum: 16.12.2010 08:11 Předmět: [python] co se stalo s Dive into python ? Ahoj chtěl bych se zeptat jako to s touhle knihou dopadlo ? je hotova ? da se koupit ? stahnout ? rad bych si ji nechal dat k vanocum :D ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com icq: 109248375 twit: https://twitter.com/kvbik ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] xml.etree.ElementTree a parsovani souboru s namespace.
Doporučuji přečíst kapitolu 12 z Dive Into Python 3, konkrétně 12.4. Parsing XML http://diveintopython3.org/xml.html#xml-parse 12.5. Searching for nodes within an XML document a konečně 12.6. Going further with LXML (plná podpora XPath 1.0). Petr __ Od: M.B. Komu: python@py.cz Datum: 20.12.2010 22:31 Předmět: [python] xml.etree.ElementTree a parsovani souboru s namespace. Zdravím, Začal jsem z nudy přepisovat starší Gtk programy s pomoci GObject Introspection. Jsem ale líný hledat neustále v XML souborech tak jsem si chtěl napsat jednoduchý skript na vyparsování informací do nějakého mě příjemnějšího formátu.Bohužel jsem XML soubory parsoval jen zřídka a tyhle namespaces mi dělají potíže. Nemůžu z nich nic dostat. Př: --- #encoding: utf-8 from xml.etree import ElementTree as XML root = XML.parse('/usr/share/gir-1.0/Avahi-0.6.gir').getroot() print root def normalize(name): if name[0] == '{': uri, tag = name[1:].split('}') return uri, tag else: return name namespace = normalize(root.tag)[0] print namespace clases = root.findall('{' + namespace + '}' + 'namespace/class') print clases Prosil bych o nějaké nakopnutí správným směrem. Díky. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Tady je trošku problém, že není jasné, co se tím vlastně myslí. Co se myslí zápisem x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} Je to jen symbolické? Jsou p1, p2, ... pn řetězce, které vyjadřují jména chtěných proměnných? V Pythonu je každá proměnná pouze beztypovou nepojmenovanou referencí na cílový objekt. Ta reference je vložena do některého ze systémových slovníků, přes které je spojena s nějakým jménem. Takže jedna odpověď by mohla vypadat takto: p1, p2, p3 = h1, h2, h3 Ale p1, p2, p3, ... nelze zachytit do jiné struktury jménem jinak, než že se uloží řetězcová jména proměnných. V opačném případě jsou ve struktuře uložené jen ty reference, které se shodují s těmi, které se pamatují pro jména p1,... Ale reference uložená v jiné struktuře nemá žádnou přímou vazbu na jméno proměnné. Chtělo by to uvést kontext, v jakém to řešíš. Petr __ Od: Ing. Vladislav Ludík Komu: Konference PyCZ Datum: 21.12.2010 00:45 Předmět: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Kniha dive into python3
No, taky jsem byl zvědavý. Představoval jsem si, že by ta sazba mohla dopadnout líp :( Tak snad se vám bude líbit aspoň ten věcný obsah. P. __ Od: David Rohleder Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rainbof píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Nefunguje mailman?
Ahoj všeci, Ptal se mě kolega, jak se odhlásit z python@py.cz (má to komplikovanější). Nedokázal jsem mu poradit, protože http://www.py.cz/mailman/listinfo/python nějak nefunguje. (404, Nastala chyba DNS. Server nenalezen. Odkaz může být nefunkční... a takové ty kecy.) Můžete se na to někdo mrknout? Díky, P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] (ne)logičnost .join() ?
Něco jak seznam.join(','). Tohle je naštěstí tak profláknuté, že už jsem si zapamatoval že v Pythonu je join metoda toho ',' a ne toho pole. Tak nie som jedný, komu sa zdá, že to má Python opačne. :-) já jsem stráášně rozmlsaný z Ruby kde všechno má svou logiku. Po nějaké chvíli člověk začne psát příkazy/metody intuitivně bez konzultace s dokumentací a všechno funguje. Každý má jiný pohled na věc a jiná očekávání. Podle mého názoru je přístup typu ','.join(kontejner) možná na první pohled nezvyklý, ale na druhý pohled je velmi logický. Jde o to, že dokáže spojit zadaným řetězcem prvky dodané jakýmkoliv kontejnerem, který podporuje iteraci a který vrací řetězcové prvky. A co se týká volně rozhozených built-in funkcí, ono jich zase tak strašně moc není. Nezvyklé je to hlavně pro lidi, kteří pracovali v čistě OO jazyce, který funkce nepodporuje. Viz tady http://docs.python.org/library/functions.html P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] (ne)logičnost .join() ?
Trochu popřehazuji pořadí... Radek rad...@gmail.com napsal... On 23 ún, 08:08, Petr Přikryl prik...@atlas.cz wrote: A co se týká volně rozhozených built-in funkcí, ono jich zase tak strašně moc není. Nezvyklé je to hlavně pro lidi, kteří pracovali v čistě OO jazyce, který funkce nepodporuje jo, asi tak nějak. Teď by bodl dokument: Jak zobjektit Python v místech kde se tomu brání, resp. kde to ještě nikdo neudělal. To je asi to nejtrefnější: Přesně v místech kdy Python nesleduje objektové principy to bolí, a strašně. Ono je trošku problematické říci, že Python nesleduje objektové principy. V Pythonu je totiž objektem všechno. Podle mého názoru dogma čistě objektového přístupu, kdy je veškerá funkčnost realizována metodami objektů, neodpovídá realitě, která nás obklopuje. Neodpovídá ani matematickým abstrakcím, které nás obklopují od základní školy. Pokud vás tedy něco strašně bolí, pak je to porušení oněch dogmat, které byste si přál bezhlavě následovat. Metody tříd jsou formálním způsobem popisu chování objektů dané třídy. Vychází se z poznatku, že při formálním zápisu transformace vnitřního stavu objektu uděláme méně chyb, když popis spojíme s abstrakcí objektu dané třídy. Vychází to ze zkušenosti, že například v určitém kontextu se celé číslo musí chápat jako letopočet a ne jako počet kusů něčeho nebo jako zcela abstraktní číslo. Až potud nelze nic namítat. Existují ale situace, kdy chceme s určitou hodnotou pracovat jako s velmi abstraktní hodnotou -- jaksi bez kontextu --, kdy jí chceme interpretaci přidělit až v okamžiku zpracování. Dám příklad. Mnohé reálné objekty lze v určitých situacích popsat vektorem v trojrozměrném prostoru. Přirozeným způsobem můžeme dojít k nějakému dejme tomu geometrickému úhlu, který je prostě úhlem bez bližší vazby na konkrétní objekt. Dejme tomu, že na daný úhel potřebujeme aplikovat to, čemu od základní školy říkáme funkce sinus. V takové situaci je velmi obtížné považovat zápis objekt.vektor.úhel.sin() za přirozené vyjádření toho, co nás u onoho úhlu daného objektu zajímá. Mnohem přirozenější pro nás je zápis, kdy se úhel stane argumentem obecné funkce sin(). Každý má jiný pohled na věc a jiná očekávání. Podle mého názoru je přístup typu ','.join(kontejner) možná na první pohled nezvyklý, ale na druhý pohled je velmi logický. Jde o to, že dokáže spojit zadaným řetězcem prvky dodané jakýmkoliv kontejnerem, který podporuje iteraci a který vrací řetězcové prvky. Zajisté, pro implemetátora má smysl to definovat na jednom místě. Takže by byl dobrý mixin nebo třída která implementuje metody nad iterabilními kontejnery, a ty iterabilní kontejnery podědí nebo si ty metody mixnou. Tohle je jen technický detail, který umožní svázat nějakou operaci s nějakou třídou objektu. Pořád bychom si měli uvědomovat, že tečková notace používaná u OO jazyků je pouze notací, která má usnadnit vnímání náležitosti metod k objektům. Taková notace je přínosná v situacích, kdy máme pocit, že je její přínos přirozený. Tím mám na mysli to, že zápis pokud možno snadno pochopí i ten (se stručným návodem), kdo takový zápis vidí poprvé. Ale když pracujete tak chcete psat něco jako neco.jeho_kolekce.transform.sort.jeste_transform.join Tohle považuji za poměrně nešťastné v jakémkoliv OO jazyce. Přesněji, netýká se to jazyka, ale jeho používání. Nezávisle na tom, zda se jedná o reference nebo ukazatele... Pokud má transformace join probíhat na konci uvedeného řetězu, pak musí být zajištěno, že předchozí transformace nějak neselžou. To z hlediska robustnosti kódu nemusí být tak samozřejmé. a nemáte chuť psát join(neco.jeho_kolekce.transform.sort.jeste_transform) Tady je potřeba si uvědomit, že metoda str.join(), o které se tady bavíme, je velmi specifická v tom smyslu, že jde o metodu, která má spojovat několik podřetězců do jednoho řetězce. Je tedy specifická v tom, že pracuje nad řetězci ve velmi abstraktní podobě a že výsledkem je zase čistý řetězec. V souvislosti s výše uvedeným příkladem úhlu a funkce sinus je to něco podobného. obzvláště když ten řetězec chcete na tečce dále zpracovávat. neco.jeho_kolekce.transform.sort.jeste_transform .join.strip.jiny_transform.split Přehlédl jste ale jeden detail. Na začátku celé transformace vystupuje objekt nějakého typu, který se postupně transformuje do kolekce řetězců. Potom následuje změna velmi specifické kolekce řetězců na velmi abstraktní typ řetězec. Další operace probíhají nad abstraktním řetězcem. když to pak přepíšete do závorkové notace, tak je to nečitelné, protože v závorkové notaci se píše doleva a v tečkové doprava. Pár takových závorek v tečkovaném výrazu a nevyzná se v tom ani zvíře které to má v popisu práce. Tohle není věc tečkové/závorkové notace. To je věc přehledného zápisu programu. A nebo jinak. Kolikrát v životě jste potřebovali aplikovat join na řetězec v tečce? Já si nepamatuju jediný případ. Osobně mi kroutí mozkem vyjádření aplikovat join na řetězec v tečce
[python] Vylepšení stránek py.cz
Možná by to chtělo vylepšit nebo připomenout takovou drobnost... Už se zase neumím přihlásit, pokud bych chtěl něco editovat. Buď jsem slepý, nebo to není moc intuitivní (obojí je možné ;) P. __ Od: Michal Molhanec mol-pyt...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 08.03.2011 19:21 Předmět: Re: [python] omezeni globalniho slovniku Něco mi uniká? Články na py.cz jsou, wiki je to celý, na mail archív se dostanu z titulní stránky na dvě kliknutí. Design by mohl být lepší, ale kvůli tomu není potřeba měnit platformu. Problém přece není v technologii, ale v tom, kdo ty články bude psát. Proč je nikdo nepíše dneska? Jak donutíte lidi, aby je psali, když přejdete na CMS? Jestli vám přijde nepřehledná titulní stránka nebo struktura současného py.cz, tak to lze přece změnit. Dne 8.3.2011 17:52, Visgean Skeloru napsal(a): Zdravím, jak přesně je to míněno? py.cz http://py.cz by dle mého potřebovala nový portál, s články, wiki systémem, lehce přístupným mail archívem a nějakým novodobým designem... Šel by do toho někdo? Osobně mám velice malé zkušenosti s web designem ale trochu djanga zvládnu, chtělo by to více lidí... Měl by ještě někdo zájem přetvořit py.cz http://py.cz (ač nevím jak moc mám pravomoc podobnou možnost nabízet :) ) 2011/3/6 g...@post.cz mailto:g...@post.cz Visgean Skeloru napsal(a), dne 4.3.2011 19:26: Taky mam pocit že každý týden je tu jeden mail na téma: jak použít exec/eval, možná by to chtělo založit nějaké FAQ kde by bylo vyloženě napsáno ať to dělají jinak, nebo rovnou odkazovat na starší vlákna... btw: v souvislost s tím by možná nebylo na škodu opravit py.cz http://py.cz http://py.cz máš možnost ;-) ___ Python mailing list Python@py.cz mailto:Python@py.cz http://www.py.cz/mailman/listinfo/python -- PGP pub key: http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com http://www.abclinuxu.cz/lide/visgean/gpg A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92 Jabber: visg...@jabber.org mailto:visg...@jabber.org | visg...@jabber.cz mailto:visg...@jabber.cz Github: http://github.com/Visgean ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Vylepšení stránek py.cz
To jsem zkoušel a nezabralo to. Asi to vyžadovalo zavření stránky prohlížeče. Teď jsem se tam doklikal znovu a fungovalo to samo od sebe. ;) Dík, P. __ Od: g...@post.cz Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 14:41 Předmět: Re: [python] Vylepšení stránek py.cz Pokud ti to píše: Not permitted Sorry, you need more identification to do that on this wiki. Perhaps you need to set a username in options or log in ? tak bys asi měl kliknout na ten jediný odkaz, co tam je, vyplnit dvě věci, save a mělo by to jet. ;-) P. Petr Přikryl napsal(a), dne 16.3.2011 14:35: Možná by to chtělo vylepšit nebo připomenout takovou drobnost... Už se zase neumím přihlásit, pokud bych chtěl něco editovat. Buď jsem slepý, nebo to není moc intuitivní (obojí je možné ;) P. __ Od: Michal Molhanec mol-pyt...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 08.03.2011 19:21 Předmět: Re: [python] omezeni globalniho slovniku Něco mi uniká? Články na py.cz jsou, wiki je to celý, na mail archív se dostanu z titulní stránky na dvě kliknutí. Design by mohl být lepší, ale kvůli tomu není potřeba měnit platformu. Problém přece není v technologii, ale v tom, kdo ty články bude psát. Proč je nikdo nepíše dneska? Jak donutíte lidi, aby je psali, když přejdete na CMS? Jestli vám přijde nepřehledná titulní stránka nebo struktura současného py.cz, tak to lze přece změnit. Dne 8.3.2011 17:52, Visgean Skeloru napsal(a): Zdravím, jak přesně je to míněno? py.cz http://py.cz by dle mého potřebovala nový portál, s články, wiki systémem, lehce přístupným mail archívem a nějakým novodobým designem... Šel by do toho někdo? Osobně mám velice malé zkušenosti s web designem ale trochu djanga zvládnu, chtělo by to více lidí... Měl by ještě někdo zájem přetvořit py.cz http://py.cz (ač nevím jak moc mám pravomoc podobnou možnost nabízet :) ) 2011/3/6 g...@post.cz mailto:g...@post.cz Visgean Skeloru napsal(a), dne 4.3.2011 19:26: Taky mam pocit že každý týden je tu jeden mail na téma: jak použít exec/eval, možná by to chtělo založit nějaké FAQ kde by bylo vyloženě napsáno ať to dělají jinak, nebo rovnou odkazovat na starší vlákna... btw: v souvislost s tím by možná nebylo na škodu opravit py.cz http://py.cz http://py.cz máš možnost ;-) ___ Python mailing list Python@py.cz mailto:Python@py.cz http://www.py.cz/mailman/listinfo/python -- PGP pub key: http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com http://www.abclinuxu.cz/lide/visgean/gpg A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92 Jabber: visg...@jabber.org mailto:visg...@jabber.org | visg...@jabber.cz mailto:visg...@jabber.cz Github: http://github.com/Visgean ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Překlad knihy Dive into Python 3
Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Django v TV :)
Piš s diakritikou, ať nezkresluješ smysl svých vět. Pro ostatní... tam nějaký ten Python taky vyŠkytne :))) P. __ Od: Jirka Vejrazka jirka.vejra...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 15.03.2011 20:17 Předmět: Re: [python] Django v TV :) Aha, tak to bude asi nějaký prequel/sequel k tomuto, ne? http://www.csfd.cz/film/30525-python/ Jak tak na to po ocku koukam (a zaroven se hrabu v ORM), tak se zda, ze se tam nejaky ten Python taky vyskytne :) Jirka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Překlad knihy Dive into Python 3
Jen mě zajímá, jak ta sazba dopadla. Nic víc. Díky ;) P. __ Od: rain...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 20:23 Předmět: Re: [python]Překlad knihy Dive into Python 3 zatim ne, ale chystam se knihu takto sponzorovat v ramci firmy :). Mate na mysli neco konkretniho ? Dne uživatel Petr Přikryl prik...@atlas.cz napsal: Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Překlad knihy Dive into Python 3
Tušil jsem to. Škoda. Dík za info, Petr __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 28.03.2011 10:38 Předmět: Re: [python] Překlad knihy Dive into Python 3 Ahoj, jak jsem se tak díval, tak to vypadá úplně stejně, ale je to na první pohled. Musím říct, že sazba se mi nelíbí. Jako by na to najali nějakého experimentátora, který si rád hraje a uživatelské blaho ho příliš nezajímá. - příliš malá písmenka - příliš dlouhé řádky - příliš malé okraje - nadpisy stejným typem písma jako text (plus podtržení, to by mne zajímalo, kdo na to přišel) - programy na stejné úrovni jako text (já osobně bych příklady trochu zanořil) + pěkný bílý papír To jsou mé postřehy po prvním prolistování. David Petr Přikryl píše v St 16. 03. 2011 v 20:26 +0100: Jen mě zajímá, jak ta sazba dopadla. Nic víc. Díky ;) P. __ Od: rain...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 20:23 Předmět: Re: [python]Překlad knihy Dive into Python 3 zatim ne, ale chystam se knihu takto sponzorovat v ramci firmy :). Mate na mysli neco konkretniho ? Dne uživatel Petr Přikryl prik...@atlas.cz napsal: Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python
Re: [python] Jaky zpusobem ukladat data do pole
Zkus tohle pole1 = {}# prázdný slovník (ekvivalent perlovského hash) pole2 = {} f = open('trace.data') for line in f: k, v = line.rstrip().split('=', 1) # .rstrip() odstraní n print repr(k), repr(v) pole1[k] = v f.close() f = open('trace.cfg') for line in f: k, v = line.rstrip().split('=', 1) print repr(k), repr(v) pole2[k] = v f.close() print pole1 print pole2 print pole1['AAA'] print pole2['AAA'] print repr(pole2['AAA']) --- Když jsem do uvedených souborů uložil ty udané řádky, vypisuje to tohle: C:tmp___pythonStonepy.czpython a.py 'AAA' 'BBB=CCC=DDD=EEE' 'AAA' 'FFF=GGG=HHH' {'AAA': 'BBB=CCC=DDD=EEE'} {'AAA': 'FFF=GGG=HHH'} BBB=CCC=DDD=EEE FFF=GGG=HHH 'FFF=GGG=HHH' Petr __ Od: Stone phrac...@gmail.com Komu: python@py.cz Datum: 31.03.2011 09:35 Předmět: [python] Jaky zpusobem ukladat data do pole Ahoj vsichni, jsem zacatecnik v Pythonu. Delam v nem asi 4 mesice. Mam jeden dotaz. V konfiguracnim souboru trace.data mam nasledujici radky: AAA=BBB=CCC=DDD=EEE v dalsim kofiguracnim souboru jako trace.cfg man tyto radky: AAA=FFF=GGG=HHH V perlu jsem to delal pomoci Hashe. Existuje neco podobneho v Python? Perl se mi uz prestal libit. Jak by se dala testovat jestli dotycna hodnota existuje? Predpokladal bych neco jako: pole1{AAA}=BBB=CCC=DDD=EEE pole2{AAA}=FFF=GGG=HHH Diky predem Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Jaky zpusobem ukladat data do pole
Martin Kubát napsal... nevim přesně co potřebuješ, ale možná Ti pomůže todle: slovnik = {a:AAA, b:BBB, c:CCC} slovnik.has_key(a) # True slovnik.has_key(c) # True slovnik.has_key(x) # False Metoda slovníku .has_key() je zastaralá a měla by se dávat přednost operátoru in. Takže: 'a' in slovnik # True c in slovnik # True 'x' in slovnik # False Apostrofy nebo uvozovky jsou jako omezovače řetězcových literálů naprosto rovnocenné (musí být stejný na začátku a na konci). Petr P.S. Omlouvám se Stoneovi, že jsem v minulém dopise nepromázl mailovou adresu. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Python a XML (Re: Jaky zpusobem ukladat data do pole)
Stone napsal... Potrebuju vedet, jak se ukladaji data rekneme tomu, kdyz mam XML dokument? Jaka je reprezentace v Pythonu? Existuji nejake postupy? V současnosti je asi nejlepší xml.etree (standardní modul -- http://docs.python.org/library/xml.etree.elementtree.html#module-xml.etree.ElementTree) nebo podobný s vylepšenými vlastnostmi lxml (není standardní, stáhnout z PyPI). Koukni na Dive into Python 3 od Marka Pilgrima, kapitola 12: XML (http://diveintopython3.org/xml.html) nebo na český překlad na http://knihy.nic.cz/ Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Python a XML (Re: Jaky zpusobem ukladat data do pole)
Jak píše Petr Blahoš, pokud už znáš SAX nebo DOM přístupy ke zpracování XML, pak jsou odpovídající standardní moduly přímo v Pythonu. Ale pokud ty zpracovávané XML dokumenty nejsou extrémně velké a nemusí se zpracovávat průběžně (můžou se celé načíst do paměti -- jinak by bylo nutné použít SAX), pak je asi lepší začít s xml.etree. P. Stone napsal... Potrebuju vedet, jak se ukladaji data rekneme tomu, kdyz mam XML dokument? Jaka je reprezentace v Pythonu? Existuji nejake postupy? V současnosti je asi nejlepší xml.etree (standardní modul -- http://docs.python.org/library/xml.etree.elementtree.html#module-xml.etree.ElementTree) nebo podobný s vylepšenými vlastnostmi lxml (není standardní, stáhnout z PyPI). Koukni na Dive into Python 3 od Marka Pilgrima, kapitola 12: XML (http://diveintopython3.org/xml.html) nebo na český překlad na http://knihy.nic.cz/ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Pro volný čas - Algebrogram
Jen pro zajímavost, stejná věc se řeší v Ponořme se do Pythonu 3 od Marka Pilgrima. V českém překladu http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf je to na straně 175 a 176 (pojem algebrogram jsem neznal, takže jsem to přeložil trochu otrocky). Úloha se formálně zapisuje jako boolovský výraz a využívá se (trochu hodně nebezpečná) funkce eval(): JAN + DNES + NEVI + ZDA + SE + JEDE + JEDNA + JIZDA == ZNOVA V angličině je to tady a dá se tam přímo stáhnout i pythonovský zdroják. Ale pozor je to upraveno pro Python 3. Originální řešení od Raymonda Hettingera je tady (pro Python 2): http://code.activestate.com/recipes/576615/ Hledá to ale jen první řešení (pak to zastaví, dalo by se to upravit). Možná to není nejefektivnější, ale řešení je zapsáno na pár řádcích. (Na mém průměrném počítači to první řešení JAN DNES NEVI... ukázalo asi za 10 sekund (varianta pro Python 3). (Taky to není upravené na česká písmena, ale to se dá jednoduše.) Mějte se všichni fajn, Petr __ Tomix napsal Datum: 15.04.2011 18:04 Předmět: [python] Pro volný čas - Algebrogram Zdravím, už dlouho se tu neřešil nějaký kvíz, tak bych jeden měl: http://nb.vse.cz/~fabry/hadanky-algebrogram.html JAN DNES NEVÍ ZDA SE JEDE JEDNA JÍZDA --- ZNOVA Zajímalo by mě, jestli je v Pythonu možné napsat řešení, které proběhne v rozumném čase. Tak do hodiny. Moje řešení se za několik hodin dostane cca do poloviny potřebných cyklů. (amd1700+) Stejný kód, přepsaný do C++ proběhne komplet za 20 minut. Moje řešení v Pythonu: http://codepad.org/wWPg3qQf A v C++ http://codepad.org/fcy0MEmA Příkad má 10 řešení. -- Tady je ještě jeden, lehčí: http://nb.vse.cz/~fabry/hadanky-algebrogram-prsi-prsi.html PRŠÍ PRŠÍ JEN SE LEJE (104 řešení) --- Tomix ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Pro volný čas - Algebrogram
A ještě bych vám všem rád poradil, abyste si příspěvky po sobě pořádně přečetli... :))) ... v angličtině je to tady http://diveintopython3.org/advanced-iterators.html __ Petr Přikryl Jen pro zajímavost, stejná věc se řeší v Ponořme se do Pythonu 3 od Marka Pilgrima. V českém překladu http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf je to na straně 175 a 176 (pojem algebrogram jsem neznal, takže jsem to přeložil trochu otrocky). Úloha se formálně zapisuje jako boolovský výraz a využívá se (trochu hodně nebezpečná) funkce eval(): JAN + DNES + NEVI + ZDA + SE + JEDE + JEDNA + JIZDA == ZNOVA V angličině je to tady a dá se tam přímo stáhnout i pythonovský zdroják. Ale pozor je to upraveno pro Python 3. Originální řešení od Raymonda Hettingera je tady (pro Python 2): http://code.activestate.com/recipes/576615/ Hledá to ale jen první řešení (pak to zastaví, dalo by se to upravit). Možná to není nejefektivnější, ale řešení je zapsáno na pár řádcích. (Na mém průměrném počítači to první řešení JAN DNES NEVI... ukázalo asi za 10 sekund (varianta pro Python 3). (Taky to není upravené na česká písmena, ale to se dá jednoduše.) Mějte se všichni fajn, Petr __ Tomix napsal Datum: 15.04.2011 18:04 Předmět: [python] Pro volný čas - Algebrogram Zdravím, už dlouho se tu neřešil nějaký kvíz, tak bych jeden měl: http://nb.vse.cz/~fabry/hadanky-algebrogram.html JAN DNES NEVÍ ZDA SE JEDE JEDNA JÍZDA --- ZNOVA Zajímalo by mě, jestli je v Pythonu možné napsat řešení, které proběhne v rozumném čase. Tak do hodiny. Moje řešení se za několik hodin dostane cca do poloviny potřebných cyklů. (amd1700+) Stejný kód, přepsaný do C++ proběhne komplet za 20 minut. Moje řešení v Pythonu: http://codepad.org/wWPg3qQf A v C++ http://codepad.org/fcy0MEmA Příkad má 10 řešení. -- Tady je ještě jeden, lehčí: http://nb.vse.cz/~fabry/hadanky-algebrogram-prsi-prsi.html PRŠÍ PRŠÍ JEN SE LEJE (104 řešení) --- Tomix ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Nastavení default kódování print-u (je?t? jednou)
Ať se na to díváš jak chceš, vždycky někde nastane nějaká komplikace. Problém je v tom, že string v Pythonu 2.x je posloupnost bajtů a informace o kódování u toho není zachycena. Nakonec jsem dospěl k tomu, že je nutné používat unicode řetězce (i v Pythonu 2). Zatím to může být v reálném provozu utopie, ale je dobré se pomalu přeorientovávat na Python 3. Petr __ zu1234 napsal Děkuji za krásné uvedení do problému!! K obsluze kódování na výstupu z programů jsem začal používat codecs.getwriter(...) jak mi zde bylo poraděno. Pod windows mi to například umožňuje nastavit stdout (který jde do souboru) na cp1250 a strerr (který jde na terminál) na cp852. Je to dobré řešení až na jeden problém: Pokud nastavím kódování i na stderr a nastane chyba při běhu programu na řádku obsahujícím české znaky, nezobrazí se popis chyby. To trochu komplikuje ladění programu. Nevím jak to odstranit. Například: --- Varianta s sys.stderr = codecs.getwriter #!/usr/bin/python # -*- coding: utf-8 -*- import sys import codecs sys.stderr = codecs.getwriter('cp852')(sys.stderr) print ššš %s % () --- Chybové hlášení částečné: Traceback (most recent call last): File x.py, line 10, in Varianta bez sys.stderr = codecs.getwriter #!/usr/bin/python # -*- coding: utf-8 -*- import sys import codecs # sys.stderr = codecs.getwriter('cp852')(sys.stderr) print ššš %s % () --- Chybové hlášení úplné: Traceback (most recent call last): File x.py, line 9, in print ┼í┼í┼í %s % () TypeError: not enough arguments for format string Dne 19.4.2011 12:30, Filip Štědronský napsal(a): Dne 22.3.2011 14:38:22 napsal zu1234: Ale mohl by mi někdo vysvětlit proč to nejde bez reload? #!/usr/bin/python # -*- coding: utf-8 -*- import sys reload(sys) if sys.stdout.isatty(): # Výstup jde na terminál: sys.setdefaultencoding('cp852') else: # Výstup jde do souboru: sys.setdefaultencoding('cp1250') print u'šílené' Ahoj, tohle všechno je způsobeno tím, že funkce setdefaultencoding není tak úplně určena pro uživatele. Při startu Pythonu se automaticky importuje modul site.py, který se stará o všechny možné druhy nastavení a inicializací a který je podle potřeby možné přizpůsobit podle potřeb cílové platformy a/nebo administrátora. Tam se mimo jiné volá funkce setdefaultencoding s nějakou hodnotou, kterou to považuje za rozumnou pro dané prostředí (v linuxu se to snaží uhodnout podle locale, na oknech to nejspíš bude vždy ascii). A poté, co to udělá, prostě funkci setdefaultencoding z modulu sys smaže (aby si s ní nehráli programátoři --- neboť v dobré víře je nastavení kódování považováno za věc prostředí, do které Pythoní program, kterýžto by měl být na prostředí nezávislý, nemá co mluvit). Reloadem se sys vrátí do původního stavu, tedy včetně metody, kterou původně site smazal. Pro podrobnější informace doporučuji projít site.py někde v knihovních adresářích pythonu. Snad to dává aspoň trochu smysl Filip Štědronský ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Optimalizace
Musí se taky dát pozor na to, v jakém pořadí jsou ty bajty uloženy. Různé operační systémy a různé procesory mohou způsobit uložení bajtů z 32bitového čísla v různém pořadí. Pokud ten kód má být nějak univerzální, musí se na to myslet. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] XML a ElementTree
Jen obecná poznámka... Na http://diveintopython3.py.cz/ jsem umístil HTML verzi českého překladu Dive Into Python 3. Doporučuju kapitolu 12. XML http://diveintopython3.py.cz/xml.html. Lepší je momentálně asi jen lxml, která používá stejné aplikační rozhraní, ale podporuje víc do hloubky XPath... V Python 2 se s ElementTree dělá podobně. Měj se fajn, Petr __ Od: Vlastimil Slinták Komu: Konference PyCZ Datum: 12.05.2011 19:16 Předmět: [python] XML a ElementTree Zdravím, snažím se v Pythonu parsovat XML soubor pomocí xml.etree.ElementTree. Chtěl bych z xml stromu načíst obsah některých konkrétních tagů a případně je změnit a zapsat zpět. Bohužel se mi to nedaří. Abych nemluvil obecně — snažím se udělat si pořádek ve své elektronické knihovně, která obsahuje knihy ve formátu EPUB. To je v podstatě ZIP archiv, který obsahuje soubor content.opf se všemi informacemi. V tomto souboru, který má formát XML, jsou uloženy informace o autorovi, názvu knihy, ISBN a další (viz příloha). V Pythonu zkouším něco takového: import xml.etree.ElementTree as ET tree = ET.parse('content.opf’) # Všechny elementy mohu projít přes iterátor: for e in tree.getiterator(): print e.tag # Mně ale zajímají pouze některé elementy, # zkouším je najít... tree.find(’title’) tree.find('package/metadata/title’) # Ani přes kořenový element se nedaří root = tree.getroot() root.find(’title’) root.find('package/metadata/title’) # Pokud se pokusím vyhledat tag ‚title’ včetně # jmenného prostoru, dostanu výjimku root.find('dc:title’) SyntaxError: expected path separator (:) Pravděpodobně jsem jenom nepochopil jak se pracuje s XML. Jak mám načíst obsah jenom těch elementů, které mě zajímají abych s nimi mohl dál pracovat? Případně, existuje lepší knihovna na práci s XML v Pythonu? S pozdravem, VS ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Zveřejněna HTML verze českého překladu Dive Into Python 3
Zdravím všechny, Na http://diveintopython3.py.cz/ najdete HTML verzi českého překladu Dive Into Python 3 od Marka Pilgrima (http://diveintopython3.org/), čili Ponořme se do Pythonu 3. Tento text byl podkladem pro sazbu stejnojmenné knihy, která vyšla v Edici CZ.NIC -- viz http://knihy.nic.cz/. Na stránce http://knihy.nic.cz/ najdete i odkaz na PDF verzi. S pozdravem, Petr Přikryl P.S. Postupně ta HTML učešu a zapracuji opravy a úpravy z originálu. Když najdete chybu, neváhejte a napište. Víc očí víc vidí. Víc hlav, víc zelí. ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] učit Python 2.x nebo 3.x
Od: Marek Nožka ... Rád bych zařadil Python do výuky programování na střední škole a rád bych se zeptal na váš názor ohledně toho, jestli učit Python 2 nebo 3. Python 2.7 implementuje hodně věcí z Python 3. Rozdíly rozhodně nejsou nepřekonatelné. Pro Python 3 bych se rozhodoval pokud by se důraz kladl na zpracování českého textu (nový typ string, unicode a z toho mírně odlišný přístup při práci se soubory v textovém režimu, ...). Doporučil bych se spojit s těmi, kdo to už učí. Budou mít poznatky z první ruky. (Znám dva, aspoň jeden to tady čte...) pro trojkouvou řadu zatím nejsou moc knihovny. (Jde mi hlavně o SciPy, NumPy a Matplotlib, protože jsme technická škola.) Další problém je s návody a tutoriály. Ty jsou zatím spíš pro v2. Nedávno byl vydán český překlad Dive Into Python 3 pod názvem Ponořme se do Pythonu 3 (http://knihy.nic.cz/, html verze na http://diveintopython3.py.cz/). Jsou tam shrnuty poznatky autora související s rozdíly vůči Python 2, jak upravovat starší zdrojáky, na co si dát pozor atd. Myslíte si, že bych měl raději začít v.2.x a pak teprve přejít ke 3.1? Puristický a extrémistický přístup vyžaduje jedině Python 3.2.1. Faktem je, že v praxi je stále ještě víc dostupný Python 2, takže bych volil 2.7. (Pro mě osobně je brzdou v přechodu k Python 3 hlavně balík wxPython.) Měj se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Fwd: Re: Re: učit Python 2.x nebo 3.x
Přeposílám ještě pár poznatků Jiřího Znamenáčka, který Python momentálně používá při výuce... Petr __ Původní zpráva: Od: Jiří Znamenáček Datum: 06.06.2011 11:28 Předmět: Re: Re: [python] učit Python 2.x nebo 3.x [...]Pár komentářů mám, ale řešení ne :) Nečteš náhodou tuhle konferenci? Ptá se tam nějaký člověk, jestli na střední škole začít učit Python 3 nebo Python 2. Zajímavá otázka. S Pythonem 2.7 nemám vůbec žádné zkušenosti, jen matnou představu z 2.6. Vyjádřil bych se spíš obecně 2.x versus 3.x. Dva komentáře obecně: ~ Python 3.x je sice zpětně nekompatibilní, ale troufám si tvrdit, že ke škodě jazyka příliš málo – věcí na opravení (a zbavení se historického balastu) tam bohužel i tak zbyla spousta :-( ~ Ale přes to všechno je řada 3.x mnohem, hm, logičtější jazyk. Zvláště rozšíření použití iterátorů a sjednocení všehokoliv (nechci říkat zrovna syntaxe). Prostě kód v Pythonu 3.x v mnoha ohledech působí „přirozeněji“. Z hlediska výuky: ~ Chcete-li studenty seznámit s programováním na dynamicky typovaném jazyce, je Python asi pořád jedna z lepších (a čitelnějších) voleb. (I když už léta ztrácím přehled, takže...) ~ Python vám vnutí celkem rozumnou štábní kulturu. Počítejte ale s tím, že i v jeho dosti pevných mantinelech se najdou lidi, kteří ji ohnou takovým způsobem, že se nebudete stačit divit :-) ~ I v trojkovém Pythonu je spousta ošklivých věcí, ale pořád méně než ve dvojkovém. ~ Mimochodem řada 3.x působí zatím skoro celou dobu jako testovací beta, takže jestli trojkový Python, tak rovnou až 3.2 :-) Ten vzal zpátky některé podivné změny a vypadá, že se vývoj konečně trochu ustálil. Tudíž neslaný-nemastný závěr: ~ Je-li vaším hlavním úkolem zpracovávání textu v jakémkoliv jiném kódování než ASCII, zapomeňte na Python 2.x a používejte rovnou 3.1+. (Nebo si aspoň důkladně ověřte, že autor knihovny, kterou zrovna potřebujete, s Unicodem počítal...) ~ Potřebujete-li spolupráci externích knihoven, důkladně si nastudujte, zda jsou k dispozici pro Python 3.x. Většinou to nebude pravda a budete muset použít Python 2.x. Osobně si pořád (po dvaceti letech :-) myslím, že základy programování se nejlíp vysvětlují na Karlovi. Logo je pěkné, ale už zbytečně obsáhlé. A „normální“ jazyky – Python v to počítaje – jsou z tohohle hlediska už úplně mimo. Popravdě bych byl radikální a kdybych mohl, tak bych povinně předepsal NEJDŘÍV kurs Haskellu nebo něčeho podobného funkcionálního, a AŽ POTOM bych nasadil procedurální jazyk. Jirka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
David Rohleder Petr Přikryl píše Jak píše Tomáš. Jakmile si začneš s texty s diakritikou, vždycky je lepší používat Unicode řetězce (i když je otrava psát před literály u a dávat [...] a není ta definice na začátku # -*- coding: utf-8 -*- ekvivalentní uřetězec? Není. Ta definice na začátku souboru jen říká interpretu, jak má interpretovat znaky ve zdrojovém textu. Neříká nic dalšího o tom, co se s nimi děje u starých řetězců (bez u na začátku). Pokud je zdrojový text v utf-8, pak i v paměti bude v řetězcovém objektu stejná posloupnost bajtů, jako v souboru. V řetězcovém objektu ale není nikde informace o kódování -- ta existuje mimo objekty a má charakter dohody. (Každý soubor může používat jiný způsob kódování. Nevím o způsobu, jak by se dalo v pythonovském programu zpětně zjistit, v jakém kódování byl uveden zdrojový text -- ale možná něco takového je.) Teprve když použiteš unicode řetězec, přehrká interpret při překladu posloupnost bajtů z literálu za pomocí informace z # -*- coding: ... -*- na posloupnost abstraktních unicode znaků. V Pythonu 3 už se prefix u psát nemusí -- všechny řetězcové literály se převádějí na unicode řetězce. Unicode řetěze nevyužívá žádné kódování. Je to prostě unicode řetězec. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
David Rohleder píše [...] Když už jsme u těch řetězců: jak se udělá raw unicode řetězec, tj. interpret neinterpretuje uvnitř? Generuju si latexový dokument a on se přirozeně vzteká na: hlavicka = ur documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print hlavicka SyntaxError: (unicode error) 'rawunicodeescape' codec can't decode bytes in position 39-40: truncated u To je jedno z těch temných zákoutí. Ono se to vzteká už při hlavicka = ur'usepackage' print hlavicka Problém je v tom, že raw-unicode-escape s předponou ur není tak úplně 'raw'. Interpretují se posloupnosti u -- viz http://docs.python.org/tutorial/introduction.html#unicode-strings: For experts, there is also a raw mode just like the one for normal strings. You have to prefix the opening quote with ‘ur’ to have Python use the Raw-Unicode-Escape encoding. It will only apply the above u conversion if there is an uneven number of backslashes in front of the small ‘u’. V tomto případě mě napadá jen ta možnost, že se napřed vyrobí raw string (starý, neunicode) a převede se druhým krokem na unicode: == # -*- coding: utf-8 -*- hlav = r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print type(hlav) hlavicka = unicode(hlav, 'utf-8') print type(hlavicka) print hlavicka == Dá se to trochu vylepšit tím, že si nadefinuješ funkci u(), aby se to hezčeji zapislovalo: == # -*- coding: utf-8 -*- def u(raw_string, encoding='utf-8'): return unicode(raw_string, encoding) hlavicka = u(r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} ) print type(hlavicka) print hlavicka == V případě chroupání LaTeXových textů bych ale vážně uvažoval o použití Python 3 -- i kdyby jen pro tento účel. Tam se z toho stane jen raw string, který bude automaticky unicode (nový str se rovná starému typu unicode): == # -*- coding: utf-8 -*- hlavicka = r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print(type(hlavicka)) print(hlavicka) == Pokud toho chroustacího kódu máš víc, pomůže pythonovská utilitka 2to3 -- viz http://diveintopython3.py.cz/case-study-porting-chardet-to-python-3.html#running2to3 P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
Mailer mi sežral zpětná lomítka. Dopiš si je tam. To je jedno z těch temných zákoutí. Ono se to vzteká už při hlavicka = ur'usepackage' print hlavicka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] hash objektu, kontrola aktuálnosti dat v databázi
Interní hash(x) jen volá metodu příslušného objektu x.__hash__() a jednou z jejích priorit je nalezení místa v dict(). Ale v dict() se s konflikty musí celkem počítat, takže kvůli rychlosti nebude moc spolehlivá. Přidávám se k Jirkovi Vejražkovi a k jeho doporučení standardního modulu hashlib. Problém je ale jinde. Hash (kvalitní varianta) je jen velké číslo, které mi pomůže odhalit, že je něco stejné. Pokud ale buduji databázi ze stránek obsahujících jídelníček, pak mi jednotlivých záznamů není celkem k ničemu. Stejně musím zjistit datum, restauraci... Netvoříš přece databázi, ve které je hash klíčem. Potřebuješ hledat podle více klíčů. Hash celé stránky nebo její významné části by mohl pomoci odhalit, jestli se stránka změnila (pokud to nejde zjistit rozumnějším způsobem). Pokud tam změna není, nemusím dělat nic. Pokud tam změna je, musím stejně rozlézt všechny záznamy a porovnat je s databází podle klíčů. Pokud budu mít nový potenciální objekt databáze (obalený záznam), který má stejný hash jako existující objekt databáze, nedělám nic. Pokud má jiný hash, musím ho stejně vložit. Proč bych měl pracně zjišťovat, jestli tam takový objekt zatím není a teprve pak ho vkládat? Jednodušší je ho tam prostě vložit (nahradit případně už existující). Nebo mi nějaká část myšlenky utekla? Mrkni na možnost zjistit položku HTTP hlavičky Last-Modified http://diveintopython3.py.cz/http-web-services.html#last-modified Petr __ Od: martin...@...il.com Stačilo se na to trochu vyspat a už asi vím, jak to provedu. Ale i tak, budu opravdu vděčný za každou připomínku. Aby byl jasný kontext, jedná se o parsování obědových meniček z různých restaurací, sbírám tyhle data, abych k nim pak měl přístup z aplikace na Androidu. Každé jedno jídlo je uloženo v databázi ve vlastním záznamu, je u něj odkaz na restauraci ke které patří, pro jaký den, cena, případně gramáž, atd. Z těchto jednotlivých dat můžu jednoduše udělat jeden string a z něho udělat hash a poznačit rovnou do záznamu toho konkrétního jídla. Když příjde kontrola dat, znovu se každé jídlo zparsuje, vyrobí se objekt databázového modelu a když je hotovo, tak si k nim vytáhnu už existující data z databáze a porovnám hashe, ty které se změnili nechám být, změněné updatuju, ty co jsou tam navíc vymažu. Nic lepšího mě nenapadlo :) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Py 3.2.1 final ?
Od: Tomix to...@tiscali.. Je někde k mání? Měla vyjít 19.6. a kde nic tu nic. :-( Nevím, kde se říkalo, že 19. 6. měla vyjít finální 3.2.1. Aktuální informace je, že má vyjít 10. 7. Dne 2. 7. vyšel 3.2.1rc2. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] dotaz na webovou aplikaci v pythonu
Dive Into Python 3 = Ponořme se do Pythonu 3 http://diveintopython3.py.cz/ On zas ten Python 3 pro naučení se tak odlišný není. Rozdíly rozhodně nejsou tak velké, aby ses té publikaci vyhýbal obloukem -- ať už se pak rozhodneš pro Django nebo něco jiného. Co se týká práce s knížkami, bude vhodné pracovat v Unicode (týká se to i databáze). V Python 3 se s Unicode řetězci pracuje přece jen trochu přirozeněji. Unicode a souvislosti s Pythonem je věnována kapitola 4. Řetězce (http://diveintopython3.py.cz/strings.html). Python 2.7 se na druhé straně svými vlastnostmi snaží Pythonu 3 přibližovat. Styl práce tedy nebude tolik odlišný. Definitivní rozhodnutí pak může padnout podle toho, co bude podporovat zvolený framework. V závislosti na tom, jak se projekt bude vyvíjet, by možná stálo za to dohodnout se s vedoucím práce, že bys jako součást projektu zařadil i srovnání řešení v Python 2.7 a Python 3.x. Přepisu z Python 2 do Python 3 je v Dive Into Python 3 věnována příloha A (http://diveintopython3.py.cz/porting-code-to-python-3-with-2to3.html). Můžeš taky zkusit pracovat podle té knížky a zkoušet všechno v Pythonu 2.7. Mělo by to být poměrně snadné. Ale je potřeba opravdu NĚJAK začít. Ono se taky může stát, že bude za chvíli venku Django pro Python 3. Takže opravdu doporučuji začít s Pythonem, osahat si ho na příkladech a menších částech projektu (ověření principiálních možností a schopností tebe jako programátora je využít). Teprve pak bych přistoupil k rozhodnutí, v čem to přesně napsat. Při tom rozhodování musíš mít jasno, co vlastně budeš dělat. Principy řešení projektu už musíš mít v hlavě a pokusný kód na harddisku ;). Ještě jednou to zdůrazním: Poslední Python 3 není principiálně jiný, než Python 2.7. Petr __ Od: Vlastimil Slinták Komu: Konference PyCZ Datum: 29.09.2011 12:06 Předmět: Re: [python] dotaz na webovou aplikaci v pythonu Pardon, ten odkaz na Dive into Python beru zpět. Ta kniha je totiž o Pythonu 3, který není zpětně kompatibilní s verzemi 2.X. Navíc Django také neběží pod Python 3. Takže na to pozor. On 29. 9. 2011, at 11:57, Vlastimil Slinták wrote: On 29. 9. 2011, at 11:27, Tomáš Kácel wrote: Dobrý den, děkuji za odpovědi a omlouvám se za to, jaké chyby jsem napsal v předchozím textu.Byla skoro jedna hodina ráno a čeština nebyla nikdy můj kamarád(určitě najdete nedostatky i v tomto textu) a také jsem z bakalářské práce docela vystresovaný, protože jsem kompletní včerejší den brouzdal po internetu a četl knížku o pythonu a večer to na mě dolehlo. Není třeba být vystresovaný. Vždyť je skoro začátek zimního semestru a bakalářka se odevzdává na konci letního, ne? Pokud se na to nevykašleš a budeš případné problémy konzultovat s vedoucím práce, tak není důvod aby jsi ji nenapsal a neobhájit. K úrovni bakalářské práce(FIMU) bych chtěl říci, že jsem napsal zadání opravdu jednoduše oproti originálnálu.Samozdřejmě, že zde databáze být musí(protože výsledky které najdu například na knihi.cz(to je opravdu s i :-D) se budou moci po dotazu uložit do databáze, aby když někdo zadá stejnou knihu tak to znovu nehledalo recenzi a hodnocení.Dále by zde moli být další věci jako zjistit jestli je kniha dostupná ve fakultni knihovně atd. Mám vytvořit vlatní analýzu a návrh problému(vyhledávač hodnocení knih) a posléze to co navrhnu naprogramovat.Raději se držím opravdu při zemi, abych si nevymyslel nějaké grafy a statistiky a potom bych nenaprogramoval ani ťuk. A nyní jsem dost zmaten jestli mám Django začít studovat nebo ne protože názory se zde dosti liší. Jestli Django použít či ne: Za sebe můžu říct, že s Djangem jsem se učil i Python. Ale udělej si názor sám. Podívej se na tutoriál, zkus si napsat jednoduchou web aplikaci a uvidíš. https://docs.djangoproject.com/en/1.3/intro/tutorial01/ Navíc dokumentace Djanga je opravdu dobrá a na webu najdeš spoustu projektů, ze kterých se také můžeš hodně naučit. Syntax Pythonu pochytíš rychle a zbytek najdeš třeba v Dive into Python (http://www.root.cz/knihy/dive-into-python-3/ myslím, že je i český překlad od CZ.NIC). Vlastik ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Informace o parcele -- Polívkova 26
A dopr... Omlouvám se. To jsem fakt nechtěl :) Pokud to někdo můžete smazat, tak to odstraňte. Díky za pochopení, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] špatné znaky v http://diveintopython3.py.cz/
Zkoušel jsem to tam nahrát znovu. Asi je to tam uložené dobře, ale zprasí se to někde po cestě ven (i když to kopíruji přes WebDAV). P. __ Od: zu1234 zu1...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2012 10:50 Předmět: [python] špatné znaky v http://diveintopython3.py.cz/ Nevíte proč stránky http://diveintopython3.py.cz/; neumí písmeno 'ě'? Není to škoda? Přitom v ZIP archivu http://diveintopython3.py.cz/PonormeSeDoPythonu3-html.zip je to OK. ZU ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] diveintopython3.py.cz -- zahájeny opravy a úpravy
Zdravím všechny, zu1234 napsal(a) Nevíte proč stránky http://diveintopython3.py.cz/; neumí písmeno 'ě'? Zatím se to nevyřešilo, ale v příslušném zip http://diveintopython3.py.cz/PonormeSeDoPythonu3-html.zip najdete verzi, kde jsem začal s oprašováním: 2012-02-21 U HTML souborů byl odstraněn BOM (tj. teď je UTF-8 bez BOM) 2012-02-21 Odkazy na originál změněny na nové 2012-02-22 about.html naformátováno podle originálu 2012-02-22 Pojem alfametika nebo alfametická hádanka změněn na algebrogram 2012-02-22 advanced-iterators.html - upraveno formátování podle originálu 2012-02-22 blank.html - formátování upraveno podle originálu Pokud někdo narazíte na chyby, špatné zalomení, cokoliv, dejte mi vědět. Budu to postupně zapracovávat. Mějte se fajn, Petr Přikryl ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] diveintopython3.py.cz -- zahájeny opravy a úpravy
Díky ViNiLovi už by to mělo zase fungovat. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby...
Ahoj všichni, Na http://diveintopython3.py.cz/ najdete několik minut/hodin starou verzi překladu Dive Into Python 3. - Všechny HTML soubory byly přeformátovány podle originálu, takže by tím měly být opraveny chyby v zalamování příkladů. - Přibyla příloha E, ve které najdete seznam posledních změn a úprav. - Přeneseny byly všechny opravy a úpravy, které Mark Pilgrim provedl před informační sebevraždou. - Byly změněny odkazy na originální webovou podobu. Vše je k dispozici v podobě Git archivu na https://p...@github.com/pepr/diveintopython3cz.git Kromě vlastních HTML dokumentů tam najdete i pomocné skripty -- částečně převzaté od Marka Pilgrima, částečně upravené nebo vytvořené. Nahrubo je tam konfigurace pro generování alternativní PDF podoby, kterou si můžete stáhnout jako http://diveintopython3.py.cz/PonormeSeDoPythonu3pdf.zip Čtěte, hledejte chyby, posílejte náměty na další zpracování. Ale hlavně... ... mějte se fajn, Petr P.S. Pokud má někdo zkušenosti s automatizovaným generováním elektronické a tištěné podoby z HTML 5 (do PDF nebo do jiných formátů, přes TeX nebo jinak), ozvěte se mi. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Problém s českými znaky v cgi scriptu
Tomáš Kácel napsal... [...] Myslel jsem, že python3 funguje na utf-8 a neměl by mít s čekými znaky problém, stejně tak prohlížeč je nastaven na utf-8. Python 3 pracuje s unicode řetězci. UTF-8 je jedno z možných kódování unicode řetězců, když je potřeba je za fyzicky zaznamenat a nepracovat s nimi jako s posloupnostmi znaků v abstraktním smyslu. To znamená, že před odeslání mimo vnitřní paměť pythonovského procesu musí dojít k převodu na posloupnost bajtů (například metodou .encode()). Funkce print() je ale napojená na výstupní stream (standardně sys.stdout), který rovněž používá nějaké kódování řetězců (v závislosti na OS a jeho konfiguraci). Funkce print() se ale sama snaží převést unicode řetězec do onoho (skrytého) výstupního kódování. Z těchto důvodů není ke generování výstupního HTML souboru vhodné používat funkci print(). Lepší je otevřít výstupní textový soubor f pro kódování UTF-8 a zapisovat do něj metodou f.write(s) Doporučuji si přečíst http://diveintopython3.py.cz/strings.html a http://diveintopython3.py.cz/files.html P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby...
zu1234 napsal... Při prohlížení HTML verze mi poněkud vadila velká výška řádků. Hlavně se tím (na mém (normálně) malém) monitoru znehodnocuje výborné synchronní označování řádků programu a odpovídajícího komentáře. Pořešil jsem to tak, že jsem si ve své lokální kopii upravil css definice. Když kliknete dole na Mark Pilgrim, dostanete se na stránku O knize http://diveintopython3.py.cz/about.html. Když i na této stránce kliknete dole na Mark Pilgrim, dostanete se na stránku Tiráž http://diveintopython3.py.cz/colophon.html ... a na ní se dočtete: Nikdy nepodceňujte hloubky, do kterých se stále něco odkládající autor noří. Nyní již od Internetu odstřižený, případně pod neznámým pseudonymem se připojující autor je zjevně perfekcionista -- i když to z lehkého stylu psaní nemusí být na první pohled tak patrné. Určitě má nastudované přinejmenším základy typografie. K jejich nejzákladnějším základům patří i volba písma, řádkování, stylu všeho možného. Abych to zkrátil... Věřím, že někdy se zhuštěnější písmo může hodit, ale zrovna tyhle věci nebudu upravovat pro celý zveřejněný překlad knihy. Mimochodem, okouzlen výkladem o generátorové notaci slovníku jsem se ji jal zkoušet. Ale zapomněl jsem že jedu na verzi 2.5 :-) Vřele doporučuji přejít na poslední verze Pythonu, tedy na 2.7.2 a na 3.2.2 http://www.python.org/download/ Python 2.7 je velmi dobře použitelný všude tam, kde jste použil Python 2.5. Navíc má implementovánu většinu věcí z Pythonu 3, které se daly přenést. Viz například: c:\python Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32 Type help, copyright, credits or license for more information. d = { k:k*3 for k in xrange(5) } d {0: 0, 1: 3, 2: 6, 3: 9, 4: 12} Mějte se fajn a Pythonu... (', '.join(['zdar'] * 3) + '!').capitalize() 'Zdar, zdar, zdar!' Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- hledám spolupracovníky na generování LaTeXu z originálu, různých ebook forem...
zu1234 ... zu1...@seznam.cz Jsem asi jiného ročníku než většina přítomných. Dnes frčí hecker a anonymous. Za mojeho mládí by se řeklo partizán :-)) Lidi jsou již několik tisíc let stejní. Mění se jen technologie. Věk nerozhoduje ;) Věřím, že někdy se zhuštěnější písmo může hodit, ale zrovna tyhle věci nebudu upravovat pro celý zveřejněný překlad knihy. To jsem ani neměl na mysli. Jen pokud by to někomu vadilo, tak že to jde upravit. Nebudu to upravovat v hlavním vzhledu dokumentu, ale pořád je tu možnost, že se může generovat alternativní podoba. Příkladem je už teď generované PDF http://diveintopython3.py.cz/PonormeSeDoPythonu3pdf.zip, které vzniklo s využitím nástrojů, který použil autor originálu pro vznik tištěné podoby originálu. Je to ale forma PDF, která nebyla přijata příznivě, protože kniha potřebuje něco jiného, než vytištění HTML. Ale mám takovou představu, že by se tím někdo mohl dál zabývat. Proto jsem to celé šoupnul na github. Generování solidních alternativ základní formy dokumentu by mě bavilo samotného, ale nemám na to teď moc času. Nějaké dřívější zkušenosti a poznatky ale mám, takže můžu být nápomocný při sdělování svých představ nebo při nějaké pomoci či řízení prací. Jednou z generovaných forem by mohla být zhuštěná verze pro malé displeje, případně i pro různé chytré telefony a tak. Chce to ale někoho, kdo to vyzkouší nejdřív šolichat trochu ručně, k něčemu dospěje, probereme to tady v ovzduší konstruktivní kritiky, aby se to udělalo pořádně. Jako další formu bych rád viděl převod do LaTeX nebo jiné podoby TeX, protože poskytuje vynikající možnosti sazby a také následnou možnost vygenerování kvalitního klikacího a barevného PDF. Ale už jsem z toho trochu vypadl vytrousil jsem dřívější zkušenosti. Pokud by se tady někdo našel, ozvěte se. Pro zájemce budu nápomocen i se zprovozněním Git (systém pro správu verzí, ve kterém je současný stav zachycen i s poslední historií). Na https://github.com/pepr/diveintopython3cz by se to celé soustředilo a mohli by se přidávat další. Jen bych se dovolil prohlásit se za koordinátora, aby se to celé nerozsypalo. Přece jen už jsem do toho vložil dost práce. S pozdravem, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- nová verze na http://diveintopython3.py.cz/
Zdravím všechny, Děkuji zu1234 za všímavé oko. Opravil jsem níže zmíněný odkaz a na úvodní stránku jsem doplnil informaci o Pilgrimově informační sebevraždě. Kromě toho jsem zveřejnil alternativní PDF a obsah v podobě jednoho velkého HTML (pro vyhledávání). Vše najdete popsané na úvodní stránce. Našel jsem taky řadu chyb v HTML značkování odkazů (vznikly při technickém zpracování původního textu). Při generování toho velkého HTML vznikají nějaké chyby, takže to PDF taky není perfektní. Nefunguje například číslování kapitol (zatím jsem neměl čas to opravit). Pokud narazíte na nějakou chybu (i drobnou), budu rád, když mi dáte vědět. Pokud máte někdo zkušenosti s validací HTML5, budu rád, když to otestujete. Nějaké značkovací chyby tam ještě budou. Mějte se fajn, Petr Od: zu1234 Komu: Konference PyCZ python@py.cz Datum: 23.03.2012 10:58 Předmět: Re: [python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby... Hledal jsem chardet a narazil jsem na stránce http://diveintopython3.py.cz/case-study-porting-chardet-to-python-3.html na nefunkční odkaz Knihovnu jsem přenesl do Pythonu 2 -- http://chardet.feedparser.org/ a posléze i na informaci o internetové sebevraždě autora. Myslím by nebylo marné oba tyto jevy alespoň okomentovat (například v nějaké předmluvě). Oba spolu souvisí, ale jeden z nich se nestává každý den. ZU ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Python 3 česky -- chyby můžete zapsat na github
Pokud narazíte na problém, můžete k jeho nahlášení využít i nástroje github https://github.com/pepr/diveintopython3cz/issues Je to český překlad a české problémy, proto pište česky (dva problémy jsem tam už zaznamenal). Pokud neumíte anglicky, pak musíte nejdříve stisknout tlačítko New issue (nový problém) a dál už by to mělo být jasné. Mám s github jen malé zkušenosti, proto nevím, jestli byste si tam museli zřídit účet, jak moc to je či není pro vás přijatelné, nebo jestli můžete problém ohlásit anonymně. Proto neodmítám ani jiné způsoby komunikace, tj. přes tuto diskusní skupinu nebo přímý mail. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dotaz na vi(m)kingy -- podpora pro Python
Ahoj všichni, Po velmi dlouhé době bych si rád osvěžil znalosti editoru vi(m). Vím o Statrapově tutorialu, kdysi jsem vi používal... Používáte nějaké specifické doplňky/nastavení pro editaci pythonovských zdrojáků? Dík za odkazy. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dotaz na vi(m)kingy -- podpora pro Python
Díky za info. Uložil jsem to do $HOME/.vimrc (tedy pod Windows do %HOME%\.vimrc. Líbí se mi zvýrazňování koncových mezer. Ale současně se tím přebilo zvýrazňování syntaxe. Jak to udělat, aby to fungovalo současně? Petr __ Od: rajcze raj...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2012 10:19 Předmět: Re: [python] Dotaz na vi(m)kingy -- podpora pro Python Jako dobry zaklad doporucuju tohle: setlocal tabstop=4 setlocal softtabstop=4 setlocal shiftwidth=4 setlocal expandtab setlocal nowrap setlocal formatoptions+=c highlight BadWhitespace ctermbg=red guibg=red syn match BadWhitespace /^\t\+/ syn match BadWhitespace /\s\+$/ A pak samozrejme pythoncomplete http://www.vim.org/scripts/script.php?script_id=1542 J. 2012/4/16 Petr Přikryl prik...@atlas.cz: Ahoj všichni, Po velmi dlouhé době bych si rád osvěžil znalosti editoru vi(m). Vím o Statrapově tutorialu, kdysi jsem vi používal... Používáte nějaké specifické doplňky/nastavení pro editaci pythonovských zdrojáků? Dík za odkazy. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] lite?==?UTF-8?Q?ratúra
Každému pasuje něco jiného. Knížka se dá číst ve vlaku i bez notebooku. Čtečka typu Kindle (nebo něco podobného) může být dobrým kompromisem. Alespoň občasné připojení na Internet je asi nevyhnutelné. A taky si musím přihodit.. :) http://diveintopython3.py.cz/ Mějte se všichni fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dotaz na vi(m)kingy -- podpora pro Python
Díky všem za vim tipy ;) P. __ ... Mě se docela líbí propojení Vim s interpretem. Je na to hezký plugin pro iPython: https://github.com/ivanov/vim-ipython Ještě je zajímavý plugin TagList. Díky němu se dá hezky poskočit na začátek definice funkcí. Na root.cz vyšel seriál docela hezký seriál: http://www.root.cz/clanky/vim-na-plny-vykon-vimrc/#ic=articles-relatedicc=nej-vim-pluginy-12064 http://www.root.cz/clanky/nej-vim-pluginy/ a o ještě Pavel Satrapa: http://www.root.cz/clanky/jak-si-prizpusobit-vim/ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Unicode/ne-unicode problem
Nejjednodušší je to převést nejdříve do Unicode a druhým krokem do požadovaného kódování. Tohle jsem dělal pod Windows na konzoli, která používá cp852: u = uě š č ř u u'\u011b \u0161 \u010d \u0159' s = u.encode('utf-8') s '\xc4\x9b \xc5\xa1 \xc4\x8d \xc5\x99' u2 = s.decode('utf-8') u2 u'\u011b \u0161 \u010d \u0159' u3 = unicode(s, 'utf-8') u3 u'\u011b \u0161 \u010d \u0159' sLatin2 = u.encode('iso8859_2') sLatin2 '\xec \xb9 \xe8 \xf8' .decode() nebo unicode() to převede na Unicode řetězec. .encode() to převede na požadované kódování. V názvu kódování má být oficiálně znak podtržení, ale implementace toleruje i uvedení velkých písmen a pomlček. Měj se, Petr __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Unicode/ne-unicode problem
Ten nečitelný řetězec je zapsaný ve zdrojovém textu, nebo je načtený ze souboru? Když mám v proměnné UTF-8 bajty, tak musím udělat .decode() nebo unicode(), ale jako parametr musím uvést to 'utf-8'. Posloupnost bajtů v kódovaní UTF-8 je jednou z možných reprezentací Unicode řetězce. Vznikla tedy zakódováním (například u.encode('utf-8')) unicodového řetězce. Když z toho chci dostat zpět Unicode řetězec, musím provést dekódování, takže u = s.decode('utf-8') nebo u = unicode(s, 'utf-8'). Je možné, že je ta posloupnost bajtů porušená, pak to může řvát, že neví co s tím. Pošli sem, jak vypadá repr(a) (pokud je to pro Python 2). Ptej se dál, ono se to vyjasní. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Unicode/ne-unicode problem
Já vidím tohle: rr = '\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.' a = eval(rr) a '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' u = a.decode('utf-8') Traceback (most recent call last): File stdin, line 1, in module File c:\Python27\lib\encodings\utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 9: invalid continuation byte To rr je okopírované tvoje repr. Pomocí eval() to převedu na hodnotu a. Pak volám a.decode('utf-8') a ono to jinými slovy říká, že to není v utf-8. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 02.05.2012 11:52 Předmět: Re: [python] Unicode/ne-unicode problem Je to proměnná, kde obsah byl získaný ze streamu dat. a='Ă˝ á Ă Ă.' repr(a) '\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.' Dík, JL. - Původní zpráva - Od: Petr Přikryl prik...@atlas.cz Ten nečitelný řetězec je zapsaný ve zdrojovém textu, nebo je načtený ze souboru? Když mám v proměnné UTF-8 bajty, tak musím udělat .decode() nebo unicode(), ale jako parametr musím uvést to 'utf-8'. Posloupnost bajtů v kódovaní UTF-8 je jednou z možných reprezentací Unicode řetězce. Vznikla tedy zakódováním (například u.encode('utf-8')) unicodového řetězce. Když z toho chci dostat zpět Unicode řetězec, musím provést dekódování, takže u = s.decode('utf-8') nebo u = unicode(s, 'utf-8'). Je možné, že je ta posloupnost bajtů porušená, pak to může řvát, že neví co s tím. Pošli sem, jak vypadá repr(a) (pokud je to pro Python 2). Ptej se dál, ono se to vyjasní. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.close
Pokud se do něj díváš přes konzoli (cmd), pak adresář, který je pracovním adresářem konzole brání smazání adresáře -- i když je prázdný. Asi to platí i v případě, kdy si pracovní adresář přepneš do toho dočasného (aniž by ses tam koukal přes cmd). P. __ Od: zu1234 Komu: Konference PyCZ Datum: 02.05.2012 16:11 Předmět: Re: [python] file.close 5) Nakonec jsem musel před rušením dočasného adresáře ponechat time.sleep(1). Jinak nastávala chyba: adresář není prázdný Možná už není potřeba do toho nějak šťourat, ale tohle je divný. Jak přesně se ten dočasný adresář ruší (maže)? Ruším pomocí shutil.rmtree(...) . Když se do něj podívám je samozřejmě prázdný. Pro mne to má jedno vysvětlení: jsou to windowsy. ZU ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.close
A tím FreeCommanderem jsi tam lezl před tím nebo až potom? Jakým programem/komponentou se k tomu souboru nebo adresáři přistupovalo před tím mazáním? V některých případech některé typicky používané komponenty (např. ADO nebo jiné databázové vrstvy) používají cache. I po uzavření si něco mohou chvíli držet. Setkal jsem se s tím u ADO. Dá se to potlačit, ale musí se hledat jak. P. __ Od: zu1234 Komu: Konference PyCZ Datum: 09.05.2012 08:21 Předmět: Re: [python] file.close Ale tím to asi není: adresář sem kontroloval pomocí FreeCommaneru a používám absolutní názvy souborů, takže nemám důvod se do adresáře přepínat. Ale díky za myšlenku. Zatím se domnívám, že je to nějaká prodleva windows-ů, kterou pořešil sleep(1). ZU Dne 8.5.2012 14:24, Petr Přikryl napsal(a): Pokud se do něj díváš přes konzoli (cmd), pak adresář, který je pracovním adresářem konzole brání smazání adresáře -- i když je prázdný. Asi to platí i v případě, kdy si pracovní adresář přepneš do toho dočasného (aniž by ses tam koukal přes cmd). P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Zji?==?UTF-8?Q?štění názvu souboru
Zkus __file__. Příklad -- soubor a.pokus == print __name__ print __file__ == a spusť to nejdříve přes python a.pokus. Mělo by to vypsat: __main__ a.pokus S py2exe nemám zkušenosti, takže netuším, jestli to tam procpeš. Petr __ Od: Martin lisi...@seznam.cz Komu: python@py.cz Datum: 02.08.2012 00:01 Předmět: [python] Zjištění názvu souboru Dobrý den, Nějak se mi nepodařilo najít odpověd na nasledující problém. Zde je situace: Kliknu ve 32 bitovém Windows Vista Premium na soubor (ne .py ani .exe) textového charakteru, který bude mít mnou zadanou nestandardní příponu a pro tenhle typ souboru nadefinuji Windowsu, aby se po kliknutí na něj spustil můj program zkonvertován pomocí py2exe. Program se spustí a já potřebuji v daném programu vědět název souboru, kterým byl spuštěn, aniž by ho daný program dopředu znal. Jak toho docílím? Používám Python verzi 2.7.2. Děkuji za odpověď Martin ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] OT: Sháním lidi?==?UTF-8?Q? k českému překladu ?==?UTF-8?Q?gitbook na git-scm.com
Ahoj všichni, Tohle jde trochu mimo Python, ale věřím tomu, že tak rozumní lidé, kteří si vybrali jazyk Python a používají ho téměř jako svou mateřštinu, mohou mít blízko i k skvělému nástroji jménem Git. Mám takovou ideu (která možná zapadne pro nedostatek zájmu), že by se k dokončení nebo oprášení částečného překladu http://git-scm.com/book/cs využil originální text + nástroj pro podporu překladu OmegaT (free) + překlad knihy http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf (licence to umožňuje). Kontaktoval jsem autora částečného překladu, zkontaktuji případně Scotta Chancona (autora originálu) a případně ještě překladatele do jiných jazyků. Mým cílem je vytvořit živý projekt, který by umožnil další vývoj českého překladu na stránkách http://git-scm.com/ Bude to práce zadarmo, zato s důrazem na kvalitu :) Pokud znáte nějaké lepší fórum, kde by se kroky směřující k uvedenému cíli daly lépe realizovat, případně další nosné nápady, sem s tím. Mějte se fajn, Petr Přikryl ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Spouštění Pythonovských programů ve Windows (Re: program na pozadí Windows)
Pro Windows existuje ještě jedna nová možnost. S Python 3.3 byl zaveden Python Launcher for Windows (http://docs.python.org/3/whatsnew/3.3.html#pep-397-python-launcher-for-windows), který do Windows propašovává další kousek funkčnosti známý z unixových OS. Jsou to dva programy py.exe a pyw.exe, které se (při instalaci Python 3.3 samy) nainstalují do systémového adresáře Windows, takže jsou v cestě. Na prvním řádku skriptu hledají #! a podle jeho obsahu spustí příslušnou verzi Pythonu. Kromě toho se pro Windows zaregistrují asociace na přípony .py a .pyw, které vedou ke spuštění py.exe (verze s cmd oknem) respektive pyw.exe (verze bez cmd okna). Při uvedení #! řádku na začátku (zjednodušeně #!python2 nebo #!python2) a použití požadované přípony souboru (py nebo pyw) se pak při odklepnutí pythonovského souboru spustí ta správná verze a varianta Pythonovského interpretu. Z cmd okna můžu taky explicitně spouštět py pgm.py nebo pyw wxprogram.py. Nezkoušel jsem to, ale předpokládám, že jsou to celkem jednoduché programy a jde to přenést odjinud prostým okopírováním. Všem přeji do nového roku jen to dobré a příjemné, Petr __ Od: Petr Blahos petrbla...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 10.01.2013 07:53 Předmět: Re: [python] program na pozadí Windows Pomohlo by nespouštět to přes python.exe ale pythonw.exe? (pokud to teda byla otázka na python...) Aha, vlastně aby se to nespustilo v konzoli,tak je potřeba souštět pythonw.--Petr 2013/1/9 jirka.vejra...@gmail.com Pokus mi pamet slouzi dobre, tak jedna moznost je spustit program tak, aby mel pouze ikonku v tray (vpravo dole). Pokud by mel byt uplne schovany a bezet i kdyz neni nikdo prihlaseny, je potreba ho zaregistrovat jako sluzbu. Ale mozna se pletu, uz je to dlouho co jsem neco podobneho resil. Jirka --Original Message-- From: Ing. Vladislav Ludík Sender: Python To: Konference PyCZ ReplyTo: Konference PyCZ Subject: [python] program na pozadí Windows Sent: Jan 9, 2013 19:53 Zdravím, chci aby program běžel na pozadí i bez otevřeného okna pod Windows. Existuje něco jako je nohup v Linuxu i ve Windows ? Díky Vláďa ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- _ http://sites.google.com/site/petrsstuff/ -- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] otázka ohladom mojho štýlu písania v OOP
Od: Roman Beno romanbeno...@gmail.com ... Čo sa týka Raiczeho kritiky, podobný systém s odkazom na metódy jednej konkrétnej instancie je uplatnený v module random. V modulu random má ale vytvoření instance _inst jeden důležitý důvod. Instance použije při své inicializaci aktuální čas jako zárodek pro generování náhodných čísel -- ale jen když se neudá explicitně. Zárodek (seed) se používá v různých metodách instance. Je to tam zkrátka složitější a někdy je nutné pracovat se stejným zárodkem, aby byla posloupnost náhodných čísel opakovatelná :) Instance tam slouží k uložení toho zárodku. Při prostém používání nás detaily nezajímají a místo instance a jejích metod nás zajímají funkce (jako v matematice). Jejich implementace (jako metod interní instance) může být uživatelem chápána jako implementační detail. Obecně, práce s instancemi tříd je výhodná jen v situaci, kdy instance udržuje nějaký vnitřní stav, tj. kdy má smysl uvažovat o metodách jen v situaci, kdy by to bez toho vnitřního stavu komplikovalo rozhraní volané funkčnosti. if __name__=__main__: # čo robit s instaciou(ami) po spustení z termu.. Z obecného pohledu v této části nelze mluvit o instancích tříd protože žádné nemusí existovat. Python není čistě objektově orientovaný a umožňuje (podobně jako C++) přirozenější přístup k výstavbě programu. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] cvičení z formátování řetězce
(Našel jsem to pozdě :) Od: Vladimir Macek ':'.join(re.findall('..?', a)) Ten otazník asi není nutný. Pokud by se toho dělalo víc, pak je lepší použít kompilovaný regulární výraz. Podle mého názoru je to pak ještě trochu čitelnější. (Kdo se bojí, použije ještě r'..', ale je to zbytečné :) import re rex = re.compile('..') ... a = abcdefghijkl ':'.join(rex.findall(a)) P. P.S. Teď ještě dobrovolníka , který na ta řešení nasadí timeit ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] cvičení z formátování řetězce
Jo vlastně. To je pravda. Nějak se mi do toho uvažování vnutila ethernetová adresa, kde je to sudý počet hexa cifer. :) __ Od: rajcze raj...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 05.03.2013 15:07 Předmět: Re: [python]cvičení z formátování řetězce Jen tak pro uplnost - ten otaznik nutny je, schvalne si to zkus pustit na retezci s lichym poctem znaku ;) J. 2013/3/5 Petr Přikryl prik...@atlas.cz: (Našel jsem to pozdě :) Od: Vladimir Macek ':'.join(re.findall('..?', a)) Ten otazník asi není nutný. Pokud by se toho dělalo víc, pak je lepší použít kompilovaný regulární výraz. Podle mého názoru je to pak ještě trochu čitelnější. (Kdo se bojí, použije ještě r'..', ale je to zbytečné :) import re rex = re.compile('..') ... a = abcdefghijkl ':'.join(rex.findall(a)) P. P.S. Teď ještě dobrovolníka , který na ta řešení nasadí timeit ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
Ahoj všeci, Já bych přece jen zůstal u těch cyklů a pořádně to okomentoval. Jedna věc je nějak to napsat a druhá věc je být schopný po roce znovu pochopit, co jsem tím myslel (v lepším případě) nebo co tím myslel někdo druhý (v tom horším). lst1 = [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b']) for x in lst1] print('seznam dvojic hodnot:', lst2) d = {} for a, b in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota print('slovnik sum:', d) lst3 = [{'a': a, 'b': b} for a, b in d.items()] print('vysledny seznam:', lst3) Když vynecháte ty tři meziprinty, není to ani moc dlouhé. Kdo má chuť a čas, mohl by zkusit nějaký větší příklad a timeit. Ona je ale otázka, jak vůbec vznikl ten původní seznam. Připadá mi to jako databázová tabulka se sloupci A a B. Jestli by nebylo lepší použít opravdovou tabulku (sqlite) a opravdový SQL dotaz. Mějte se fajn, Petr __ Od: Jan Bednařík jan.bedna...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 00:32 Předmět: Re: [python] Suma podle klice slovniku v seznamu Myslím že to využití groupby je parádní. Je to snadno čitelné, jednoduché a elegantní řešení. Těžko to půjde napsat čitelnějí pomocí cyklů. Ostatně právě kvůli tomuto příkladu existuje funkce groupby. Jen bych to lehce vylepšil použitím operator.itemgetter místo těch lambda funkcí, tzn.: from operator import itemgetter get_a = itemgetter('a') get_b = itemgetter('b') 2013/4/15 Honza Javorek jan.javo...@gmail.com Jde to samozřejmě v podstatě one-linerem, ale bude to nečitelný. from itertools import groupby def summarize(data): get_b = lambda x: x['b'] get_a = lambda x: x['a'] return ( {'a': val, 'b': sum(map(get_b, group))} for (val, group) in groupby(data, key=get_a) ) data = [{'a': 4, 'b': 3}, {'a': 4, 'b': 5}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] print list(summarize(data)) # [{'a': 4, 'b': 8}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] Já bych to udělal normálně cyklama, ať se v tom jde vyznat. H 2013/4/15 starenka . staren...@gmail.com Ahoj, dal sem si malyho panaka, abych to pochopil, ale porad nechapu, pokud by ti nahodou slo o sumu cisel u klicu, tak collections.Counter: import collections c = collections.Counter() for one in [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}]: ... c.update(one) ... c Counter({'b': 13, 'a': 12}) Ale asi chces neco jinyho, v tom pripade mi to asi lip vysvetli, protoze jsem z pomalejsich s --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2013/4/15 Jaroslav Lukesh luk...@seznam.cz: Dobrý den, existuje na toto nějaký jednoduchý fígl? mám zdroj (první dva slovníky jsou za sebou abyste je nemuseli hledat, jinak jsou rozmístěná všeljak) [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] a chci ve výsledku sesumírovat všecky b podle stejného klíče a, takto: [{'a':4,'b':8},{'a':1,'b':3},{'a':3,'b':2}] hodnota klíče a je obecná, tedy je to text, ne číslo. Děkuji, JL. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
O collection.Counter tu byla zmínka, ale řešení neodpovídá požadavku. P. __ Od: Jirka Vejrazka jirka.vejra...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 09:58 Předmět: Re: [python] Suma podle klice slovniku v seznamu Trochu mi unika, proc se tady resi onelinery, kdyz uz starenka napsal skvele reseni pres collections.Counter, ktery je k tomu primo urceny :) Jirka 2013/4/16 Petr Přikryl prik...@atlas.cz Ahoj všeci, Já bych přece jen zůstal u těch cyklů a pořádně to okomentoval. Jedna věc je nějak to napsat a druhá věc je být schopný po roce znovu pochopit, co jsem tím myslel (v lepším případě) nebo co tím myslel někdo druhý (v tom horším). lst1 = [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b']) for x in lst1] print('seznam dvojic hodnot:', lst2) d = {} for a, b in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota print('slovnik sum:', d) lst3 = [{'a': a, 'b': b} for a, b in d.items()] print('vysledny seznam:', lst3) Když vynecháte ty tři meziprinty, není to ani moc dlouhé. Kdo má chuť a čas, mohl by zkusit nějaký větší příklad a timeit. Ona je ale otázka, jak vůbec vznikl ten původní seznam. Připadá mi to jako databázová tabulka se sloupci A a B. Jestli by nebylo lepší použít opravdovou tabulku (sqlite) a opravdový SQL dotaz. Mějte se fajn, Petr __ Od: Jan Bednařík jan.bedna...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 00:32 Předmět: Re: [python] Suma podle klice slovniku v seznamu Myslím že to využití groupby je parádní. Je to snadno čitelné, jednoduché a elegantní řešení. Těžko to půjde napsat čitelnějí pomocí cyklů. Ostatně právě kvůli tomuto příkladu existuje funkce groupby. Jen bych to lehce vylepšil použitím operator.itemgetter místo těch lambda funkcí, tzn.: from operator import itemgetter get_a = itemgetter('a') get_b = itemgetter('b') 2013/4/15 Honza Javorek jan.javo...@gmail.com Jde to samozřejmě v podstatě one-linerem, ale bude to nečitelný. from itertools import groupby def summarize(data): get_b = lambda x: x['b'] get_a = lambda x: x['a'] return ( {'a': val, 'b': sum(map(get_b, group))} for (val, group) in groupby(data, key=get_a) ) data = [{'a': 4, 'b': 3}, {'a': 4, 'b': 5}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] print list(summarize(data)) # [{'a': 4, 'b': 8}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] Já bych to udělal normálně cyklama, ať se v tom jde vyznat. H 2013/4/15 starenka . staren...@gmail.com Ahoj, dal sem si malyho panaka, abych to pochopil, ale porad nechapu, pokud by ti nahodou slo o sumu cisel u klicu, tak collections.Counter: import collections c = collections.Counter() for one in [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}]: ... c.update(one) ... c Counter({'b': 13, 'a': 12}) Ale asi chces neco jinyho, v tom pripade mi to asi lip vysvetli, protoze jsem z pomalejsich s --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2013/4/15 Jaroslav Lukesh luk...@seznam.cz: Dobrý den, existuje na toto nějaký jednoduchý fígl? mám zdroj (první dva slovníky jsou za sebou abyste je nemuseli hledat, jinak jsou rozmístěná všeljak) [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] a chci ve výsledku sesumírovat všecky b podle stejného klíče a, takto: [{'a':4,'b':8},{'a':1,'b':3},{'a':3,'b':2}] hodnota klíče a je obecná, tedy je to text, ne číslo. Děkuji, JL. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
Je to tím, že tam nedoplňuješ aktuální hodnotu toho c. Musí se zapamatovat pro každé a. Může se zapamatovat třeba tak, že se do pomocného slovníku bude ukládat spolu se sumovanou hodnotou. Třeba takto: lst1 = [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b'], x['c']) for x in lst1] print('seznam trojic hodnot:', lst2) d = {} for a, b, c in lst2: sum_lst = d.setdefault(a, [0, c]) # seznam, kde k prvnímu prvku se přičítá... sum_lst[0] += b # ... hodnota b print('slovnik sum:', d) lst3 = [{'a': a, 'b': b, 'c': c} for a, (b, c) in d.items()] print('vysledny seznam:', lst3) (Ono se to formátování zase zprasí, takže ty dva řádky se sum_lst jsou odsazené pod for.) Petr __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 15:06 Předmět: Re: [python] Suma podle klice slovniku v seznamu Ahoj a díky za rozšíření obzorů. Jsou to data ne zrovna jednoduše vycucaná z databáze, o nějaké dočasné tabulcev sqlu jsem uvažoval protože je nad tímto selektivně sečteným výsledkem víc operací, ale připadalo mi to jako ne příliš čisté řešení. Otrocky s pomocnýma proměnnýma to taky jde, ale chtěl jsem vědět, jeslti na to není nějaký fígl, protože mi připadalo logické, aby pro práci nad poli a slovníky bylo aspoň trochu něco jako je v sql. Ale mám s tím trošku problém, izoloval jsem problém pro tento příklad až příliš moc, protože se mi nedaří jej rozšířit o 'c', tedy pro tento vstup (podotýkám jen, že hodnota 'c' je stejná pro všechny 'a'): [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] chtěl tento výstup: [{'a': 4, 'b': 8, 'c':9}, {'a': 1, 'b': 3, 'c':7}, {'a': 3, 'b': 2, 'c':6}] Tady je přehled co jsem zkoušel, tyhle dvě jdou, ale vrací špatné 'c' = lst1 = [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] lst2 = [(x['a'], x['b'], x['c']) for x in lst1] d = {} for a, b,c in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota lst3 = [{'a': a, 'b': b, 'c': c} for a, b in d.items()] print('vysledny seznam:', lst3) == from itertools import groupby def summarize(data): get_b = lambda x: x['b'] get_a = lambda x: x['a'] get_c = lambda x: x['c'] return ( {'a': val, 'b': sum(map(get_b, group)),'c':val} for (val, group) in groupby(data, key=get_a) ) data= [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print list(summarize(data)) === A toto už háže chybu from itertools import groupby from operator import itemgetter def summarize(data): get_a = itemgetter('a') get_b = itemgetter('b') get_c = itemgetter('c') return ( {'a': val, 'b': sum(map(get_b, group)),'c':valc} for (val, group,valc) in groupby(data, key=get_a) ) data= [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print list(summarize(data)) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] How To again
Ahoj, Navrhuji korekci překladu pojmu widget v http://tkinter.py.cz. Nejjednodušší by bylo ponechat widget a důkladně to ze všech stran vysvětlit. Asi se nepodaří vymyslet něco českého, co by bylo podobně specifické a obecně přijatelné. Petr __ Od: Tovim jaak...@gmail.com Komu: 'Konference PyCZ' python@py.cz Datum: 18.08.2013 17:08 Předmět: [python] How To again Buďte zdrávi pánové a dámy. Právě jsem zavěsil doplněný překlad How To Think Like a Computer Scientist in Python (3) na http://howto.py.cz o překlad textů k Tkinteru (http://tkinter.py.cz) a dovoluji si vás na to upozornit. Rád bych znal vaše názory. Tovim -- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Widget (Re: How To again)
Původní widget souvisí s dalším podobným gadget. Obě slova se používala už před existencí moderních počítačů a něco znamenají. Gadget je má možná trochu určitější smysl než widget. Traduje se, že v software se pojem widget začal používat ve smyslu window gadget. Bacha na piškoty. Narozdíl od widget/gadget pod tímto pojmem rozumíme něco docela konkrétního. A dovedu si představit, že se to někomu bude plést s cookies. A další věc je, jestli ten překlad má být hlavně zábavný nebo hlavně užitečný. Takové to americké Python je dobrý, protože je zábavný je trochu ujeté, jako celé USA. Pojmy by měly mít v daném oboru přesný význam pro co nejvíc lidí. Jde o to, že samotné vyslovení pojmu má navodit abstraktní představu (mentální obraz) popisované věci nebo jevu. Nejde o to, jestli to někomu připadá zábavné. Musí to být přesné a co nejvýstižnější. Pokud v tomto smyslu přijdeš na něco českého, co většině lidí zaklapne jako super nápad pro danou věc, pak budeš vychvalovaným vynálezcem pojmu. Není vyloučené, že se to tobě nebo někomu povede, ale piškot tyhle vlastnosti nemá. Ten widget jeden! Nebo vidžet? S widgetem či vidžetem, oboje má svoji mouchu. Piškot mi přijde zábavný. V textu používám piškot i widget, takže nevím. Ápropo: specifické na původním termínu je to, že nic neznamená. Podobnou specifikou převodu může být v duchu Létajícího cirkusu to, že je mírně střelený. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] How To again
Přidávám se k názoru Petra Blahoše. Pojem by se měl překládat přesně. Nemusí to být 1:1, ale pojem v cílovém jazyce by měl být přesný pro čtenáře v cílovém jazyce. Souvisí to s představivostí, s abstraktním myšlením. Ne vždy se všechno překládá pečlivě s ohledem na srozumitelnost. To ale neznamená, že je to správně. Ovládací prvek by měl dělat to, co ten pojem říká. Label je widget, ale podle mého názoru to není ovládací prvek. Programátoři se nakonec stejně musí naučit anglicky (alespoň pasivně). Význam překladu odborného textu pro programátory (podle mého názoru) je dvojí: 1) pomůže začátečníkům, 2) pomáhá zvládnout složitější věci, protože složitější programátorské věci vyžadují představivost. Schopnost snadno si něco představit souvisí se znalostí jazyka (lidského jazyka jako takového) a se znalostí pojmů. Pokud pojem není možné snadno přeložit, často jej stačí obšírně vysvětlit (aby si čtenář vytvořil svou představu) a používat jej v originálním znění -- převzetí slova (skloňovat; tedy widget, widgetu,...) Programátor čte jak české, tak anglické texty. Pokud se to někde hemží zkratkami jako GUI, a pojmy widget, pak je těžké mentálně přecházet k textu, kde se to hemží GUR a piškot. Buď to má zůstat co nejpodobnější, nebo to musí dávat velmi dobrý smysl v češtině. Z mého pohledu je proto překlad pojmu label jako prvek GUI mnohen přijatelnější než ovládací prvek. Ale v textu -- pokud je to srozumitelné -- může přirozeněji působit méně rigidní překlad jako popis nebo popisný prvek. Při překladu se to někdy musí řešit opisem. Důležité ale je, aby ten opis stvořil programátor, protože se musí opsat mentální obraz, který odpovídá anglickému pojmu. (Proto stojí překlady odborných textů přeložené angličtináři s humanitním vzděláním často za prd.) P. Od: Jan Bednařík Ovládací prvek taky nemusí nic ovládat. Třeba label je běžně používaný ovládací prvek, který nese jen vizuální informaci. Zkuste nahlédnout do odborné literatury, manuálů, či jen vygooglete ovládací prvek a mrkněte, v jakém kontextu se používá. Už dávno je to obecně zažitý překlad pro widget v GUI, tak bych se ho držel a nesnažil se vymyslet něco lepšího. Rozhodně ne nějaké paskvily jako piškot. 2013/8/21 Petr Blahos Ovládací prvek není widget, ale control. Widget nemusí nic ovládat. Pokud zde probíhá forma hlasování, tak hlasuji pro widget, widgety, s widgetem, ... ale respektuju, že hlavní slovo má auto překladu. 2013/8/20 Jan Bednařík widget má specifický význam, rozhodně není pravda, že nic neznamená. Záleží na kontextu v jakém je použit. Pokud myslíme widgetem komponentu v GUI, což je tvůj případ, překládá se jako ovládací prvek. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] How To again
Widget v Tkinteru je OK. Je to doslova prvek mající vlastní okno. To platí i pro label, takže tady není žádný problém. Problém by nastal po překladu, kdyby se to překládalo jako ovládací prvek. Ovládací prvek by mohl být OK pro tlačítko, radio button, check box a podobné jednoduché věci... Ale třeba samotný list box může mít z pohledu uživatele víc ovládacích prvků (šoupátko scroll baru, tlačítka scrollbaru, klikací oblasti nad a pod šoupátkem, nebo dokonce vybíratelné položky). Naproti tomu listbox jako widget je OK, protože je to prvek uživatelského rozhraní s vlastním oknem. P. __ Od: Tovim jaak...@gmail.com Komu: 'Konference PyCZ' python@py.cz Datum: 22.08.2013 16:27 Předmět: Re: [python] How To again Ahoj Michale, zu, Petře. Dovoluji si připomenout, že počátkem debaty bylo dilema, zda widget či piškot. Jestli má být widget překládán jako ovládací prvkek, komponenta či whatnot je už jaksi nad plán. V Tkinteru je label widgetem, až už je ovládacím prvkem či není. BW, Tovim From: Python [mailto:python-boun...@py.cz] On Behalf Of Petr Nesladek Sent: Thursday, August 22, 2013 8:54 AM To: Konference PyCZ Subject: Re: [python] How To again Po delší době mne debata vyprovokovala taky přispět ... - widget je pro mne jasný technicky zažitý termín (ano poprvé jsem taky zapátral cože to znamená, ale dál navždy je to jendoznačné) - ovládací prvek - zní jasně ze světa Windows ... proč ne, ale label - jak už bylo napsané nic neovládá - a v tom směru by přesnější byl grafický prvek - a nebo se spokojit s tím prvkem -komponenta je jasná v jednom uzavřeném textu, ale jako ustálené označení pro wiget je to podle mého názoru moc obecný výraz, ale koneckonců možný, (jen bych se pořád ubezpečoval , že stále mluvíme o tomtéž) Takže podle mého nározu jsou priority a oblíbenost v pořadí: widget, ovládací(grafický) prvek, komponenta. Piškot nebo udělátko asi jen jednotlivě pro jeden článek, jako ustálený termín bych se jim asi vyhýbal. Petr -- Původní zpráva -- Od: zu1234 zu1...@seznam.cz Datum: 22. 8. 2013 Předmět: Re: [python] How To again Můj názor čtenáře je takovýto: slovo widget mne mate. Vyvolává to ve mně dojem něčeho důležitého a tak speciálního, že to musí být extra pojmenováno - což je nesmysl. Pokud existují varianty prvek, ovládací prvek, nebo dokonce komponenta, tak bych velmi přivítal kdybychom zůstali u nich. Nemordujme zbytečně češtinu pokud to není nezbytné. ZU Dne 21.8.2013 21:32, Michal Molhanec napsal(a): Dobrý den, já chci jenom upozornit, že control tj. ovládací prvek je ve světě Windows (já vím, fujky, fujky) ale také třeba wxWidgets/wxPythonu prostě libovolný prvek UI, tj. zcela to samé co widget v knihovnách původem pocházejících ze světa unixu. Osobně (čistě soukromý názor, který nikomu nevnucuji) nevidím důvod, proč nepoužívat ovládací prvek i pro překlad slova widget, je to zaběhlý termín, který často znají i neprogramátoři. Případně jenom prvek (uživatelského rozhraní), pokud se to zdá lepší. Jinak ve Swingu se používá termín komponenta, ten je úplně univerzální, i když mně se moc nelíbí (je dlouhý :-) ). Zdraví, Michal Molhanec Dne 21.8.2013 13:48, Petr Přikryl napsal(a): Přidávám se k názoru Petra Blahoše. Pojem by se měl překládat přesně. Nemusí to být 1:1, ale pojem v cílovém jazyce by měl být přesný pro čtenáře v cílovém jazyce. Souvisí to s představivostí, s abstraktním myšlením. Ne vždy se všechno překládá pečlivě s ohledem na srozumitelnost. To ale neznamená, že je to správně. Ovládací prvek by měl dělat to, co ten pojem říká. Label je widget, ale podle mého názoru to není ovládací prvek. Programátoři se nakonec stejně musí naučit anglicky (alespoň pasivně). Význam překladu odborného textu pro programátory (podle mého názoru) je dvojí: 1) pomůže začátečníkům, 2) pomáhá zvládnout složitější věci, protože složitější programátorské věci vyžadují představivost. Schopnost snadno si něco představit souvisí se znalostí jazyka (lidského jazyka jako takového) a se znalostí pojmů. Pokud pojem není možné snadno přeložit, často jej stačí obšírně vysvětlit (aby si čtenář vytvořil svou představu) a používat jej v originálním znění -- převzetí slova (skloňovat; tedy widget, widgetu,...) Programátor čte jak české, tak anglické texty. Pokud se to někde hemží zkratkami jako GUI, a pojmy widget, pak je těžké mentálně přecházet k textu, kde se to hemží GUR a piškot. Buď to má zůstat co nejpodobnější, nebo to musí dávat velmi dobrý smysl v češtině. Z mého pohledu je proto překlad pojmu label jako prvek GUI mnohen přijatelnější než ovládací prvek. Ale v textu -- pokud je to srozumitelné -- může přirozeněji působit méně rigidní překlad jako popis nebo popisný prvek. Při překladu se to někdy musí řešit opisem. Důležité ale je, aby ten opis stvořil programátor, protože se musí opsat mentální obraz, který
Re: [python] externí program proměnné
Přímo z shelu (cmd) se o něčem takovém nedá rozumně uvažovat. Musela by se nějak fikaně modifikovat datová oblast rodičovského procesu, což žádný OS nevidí rád. Proměnné prostředí zde se vždycky kopírují do dětského procesu a dělá se to v okamžiku vytváření nového procesu. Opačná cesta není. Jenže Python se do té cesty umí vklínit jinak. Umí vytvořit nový proces a předhodit mu místo kopie svůj vlastní prostor s proměnnými prostředí. Ale ten je taky jen kopií z jeho otce. To znamená, že v Pythonovském procesu sice zjistím, co udělal potomek, ale rodičovi už to ven neřeknu. Dejme tomu, že mám dávku a.bat == @echo off set moje=moje promenna prostredi echo %0: %moje% == Pythonovský skript může vypadat takto (a.py) == #!python3 import os import subprocess p = subprocess.Popen('a.bat', env=os.environ) retcode = p.wait() v = os.environ['moje'] print('Python: retcode z davky je {}, vracena hodnota je {}'.format(retcode, repr(v))) == Vypíše to: == c:\__Python\geona.py a.bat: moje promenna prostredi Python: retcode z davky je 0, vracena hodnota je 'moje promenna prostredi' == Tady to není nic proti ničemu -- žádné znásilňování. Jen se prostě neudělá kopie vlastního prostředí, ale předá se to stejné prostředí dětskému procesu. 2013/11/20 g...@post.cz mailto:g...@post.cz Jak z Pythonu zavolat externí program (*.bat), aby po navrácení do pyscriptu zůstaly zachovány systémové proměnné v něm nastavené? wxp, w7, py3.2, py2.7 ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] spusteni programu s parametry
Může být uvedena i delší cesta. Windowsovský launcher najde python3 i v delším řetězci. P. __ Od: zu1234 zu1...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 12.02.2014 13:00 Předmět: Re: [python] spusteni programu s parametry Ahoj Ondro, Odhaduji, že pracuješ pod Windows. Zkusil jsem tento jednoduchý program nazvaný a.py: #!python3 S tímhle ale asi na linuxu moc nepochodíme. Zdrojáky s #!python3 už nebudou přenositelné, myslím. ZU ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] GUI pro Python 3.3
Ahoj Romane, Tkinter je k Pythonu přibalený, ale je to spíš takový záchranný člun. GUI toolkitů je víc (https://wiki.python.org/moin/GuiProgramming), ale osobně bych si vybral buď wxPython (zatím jen pro Python 2) nebo Qt. Qt mi připadá horší z hlediska licenčního a taky to vypadá na těžší váhu (snaží se některé věci dělat vlastními prostředky). Víc se mi líbí wxPython. Problém je v tom, že wxPython pro Python 3 je zatím ve vývoji (projekt Phoenix http://wiki.wxpython.org/ProjectPhoenix). Očekávej vášnivé obhajování toho či onoho toolkitu, protože tohle je svatá půda :) Petr __ Od: Roman Zbořil sewerman...@gmail.com Komu: python@py.cz Datum: 18.02.2014 08:47 Předmět: [python] GUI pro Python 3.3 Učím se programovat v Pythonu. Nainstaloval jsem si Python 3.3 a po prvním rozkoukání jsem si vyzkoušel GUI tkinter. Tkinter mi přijde jednoduchý pro programování, ale jak postupně zjišťuji chybí mu pokročilejší možnosti proto hledám jiné GUI Nejde mi o to abych si okno naklikal, nevadí mi přidávat si jednotlivé prvky do okna postupně. Jaké jiné GUI (multiplatformní) je vhodné pro programování s Python 3.3? Děkuji ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Filozoficko-průzkumná otázka
Ahoj Marku, Vezmu to z jiného konce. Tvůj úspěch je založen na multidisciplinární znalosti (historie + schopnost vytvořit nástroj užitečný pro ostatní) a toho by ses měl držet. Kolegové historici přijali tvůj programátorský příspěvek a to se nestává často. Ryzí programátoři někdy nemají cit pro koncové zákazníky. Na druhou stranu, formální vzdělání (počítačové) ti dá vědomosti, které normálně nejsou vidět, ale které ti umožní přemýšlet o věcech, které při programování zatím nikdo jiný nedělal. Dá ti základy, o kterých ostatní mnohdy ani neslyšeli. To máš jako když někdo umí rozšroubovat a složit budík (mechanický) -- hodináře to z něj nedělá, ale může všem známým okolo opravit na budíku jemu známou typickou závadu. Formální vzdělání (v jakémkoliv oboru) tě donutí učit se i věci zdánlivě zbytečné, které ale zůstanou někde schované a využiješ je v neočekávané chvíli. Všechno se dá naučit i bez formálního vzdělání. Problém je v tom, že člověk je od přírody líný a většina se (hlavně v pozdějším věku 30+) už nikdy nedonutí dostat do hlavy tolik věcí, co do té doby. Základem programování je rozvíjení představivosti související s tím, jako to uvnitř funguje a jak by to mělo fungovat. Základem je schopnost napasovat na sebe reálný problém a možnosti technického řešení. Formální vzdělání se zabývá spíš tím technickým řešením. Schopnost vidět možnosti řešení reálného problému se učí obtížněji. Pokud ji máš, rozvíjej to. Pokud budeš mít pochybnosti o zvoleném technickém přístupu, ptej se -- tady nebo jinde. Spousta lidí ti ráda poradí a nasměruje tě. Důležité je nalézt otázky. Odpovědi už se pak hledají snadněji. Petr __ Od: Marcus Scalpere xdlabac...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 26.02.2014 18:02 Předmět: [python] Filozoficko-průzkumná otázka Pěkný den vinšuji, pythonem se neživím, ale dost mě baví, jako nezaměstnaný mám dost času a dost mě těší rychlost (možná zdánlivá) pokroku. Tak bych se rád optal - kdo z vás se živí pythonem? A ti, kteří ano, co děláte (weby či něco jiného)? A jaké máte vzdělání? Jde mi o to, jestli můj koníček má budoucnost nebo to zůstane jen koníčkem. A jaká je šance na uplatnění? Berto spíš jen jako takový průzkum :-) ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz