Tomy novella
skusal som stranky s pythonom a zopar dalsich veci, ale stale nechapem
naco je napriklad v kode
--
s = \
htmlbody
foo
/body/html
def main():
return s
main()
--
ten riadok main() ? aj tak nic nespusta, naco tam je? alebo sa len
Tomy novella
--
c = atlantis_client()
c.buffer = JEDEN PRIKAZ\r\n
c.buffer = DRUHY PRIKAZ\r\n
--
... a odoslalo mi LEN tu druhu vec(v tomto pripade DRUHY PRIKAZ\r\n)
preco? ako mam odoslat obe?
Dvakrát za sebou se naplnil buffer, pokaždé
něčím jiným. Asi se mezi tím musí provést
Pavel Pinkava
[...] Jak vytvořit funkci o n-parametrech, že bych při každém
použití této funkce zpracovával neznámý počet prvků. [...]
Mrkni na možnosti definice funkce http://docs.python.org/ref/function.html
Ve spodní části je uveden zápis argumentu s jednou hvězdičkou nebo s dvěmi
... zkus třeba
def f(*a):
print a
f(1, 2, 3, 4)
pepr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
Mam soubor s textem. V nem slova uvozena uvozovkami '.
Potrebuji tuto slovo z uvozovek dostat a skocit na dalsi
radek. A tohle opakovat. [...]
pomocnej = open('pomocnej.lst','r')
dotaz = pomocnej.readline()
dotaz = dotaz.split(')
dotaz=dotaz[1]
print dotaz
radky =
A nestálo by přece jen za to přejít na normální okna (GUI)?
Mrkni třeba na příklad jednoduchého textového editoru
zapsaného na cca 70 řádcích při použití pythonovské
okénkové nadstavby Wax. Ta zjednodušuje rozhraní pro
práci s wxPython:
Leos Pol
Ne, ze bych se pokladal za zkusenyho Pythonyra,
ale tady je muj kousek kodu, jak bych to napsal ja:
s = '1, 2, 3, 4, 5, 6, 7, 8, 9'
l = eval(s)
s = ', '.join(map(str, l))
Skromnost stranou ;) Ale je tam jedna drobnost.
Když už, nepoužil bych identifikátor l. Jednak
v
... a ještě, ten generátor v minulé ukázce se dá napsat
taky jako generátorový výraz, takže jednořádkové řešení
bez map() a navíc efektivnější by se dalo napsat takhle:
s = ', '.join(str(int(m) * 2) for m in s.split(','))
print repr(s)
Tedy za předpokladu, že zpracovává každý prvek zvlášť
(zde
Jirka Vejrazka
[...] Co takhle?
def source_text(self, source_file):
fh = open(source_file, 'r')
kopiruj = False
vysledek = []
for line in fh:
if ':/tohleChci:' in line:
kopiruj = False
if ':tohleChci:' in line:
kopiruj = True
Zkus ten instalátor spustit přes kontextové menu
a Spustit jako administrátor (Run as administrator). Ve Vistách
si musí tímto krokem odblokovat vyšší oprávnění i uživatel, který
má administrátorská oprávnění. Říkám tomu dětská pojistka ;)
Pokud by ten program měl charakter skriptu
Petra Javornicka
[...] To je jasny, ale porad nevim, odkud bere interpretr
odlisit informaci, aby mohl
g=D # pointer
d=D(f) # taky pointer :-O
d=D(n) # dereference - call
U syntaxe dekoratoru s prefixem '@' se to zda byt jasny.
Ale u funkce utrousene nekde mezi definicemi?
Za
Petra Javornicka
regnarG
Je to úplně to samé. Zavolá funkci a výsledek vloží do proměnné.
Jediný rozdíl je v tom, že D je funkce která vrací funkci.
IMHO ale to je ten nejpodstatnejsi rozdil, protoze ta D funkce tu
druhou vraci v 'compile-time' , zatimco ta vracena se vykona az v
Petra Javornicka
Petr Prikryl
V Pythonu se v čistém slova smyslu nic nedělá v compile-time.
Všechno jede spíš v run-time. Jde jen o to jestli dříve (při
Ja bych v cistem slova smyslu rekla, ze se to preklada, protoze vznika
nejaky p-kod, ne? A kdyz se neco preklada, tak je to v compile
Petra Javornicka se zeptala
[...]
Radek vysvětluje
To se pouziva misto tzv. dekoratoru, ktere jsou zavedene
az od Pythonu 2.4.
Aha, ja zacala s Pythonem az od verze 2.5.
Lépe řečeno, dekorátory byly zavedeny kvůli tomu, aby
se dodatečná manipulace s funcí/metodou dala předepsat
jako
Jiri Vit napsal:
[...] me ty reduce(), map(), zip() a spol. pripadaly v
kodu vzdy hrozne nesrozumitelne.
Zapis:
[ ( x,y.upper() ) for x,y in t1 ]
mi teda pripada hodne fajn ;-)
Mě taky připadá ten funkcionální zápis většinou
méně srozumitelný. Někdy se to hodí, ale...
regnarG
slacker
vzhledem k tomu, ze budoucnost map i lambda je vice nez nejista,
tady dalsi moznost :-) [...]
Budoucnost map() i lambda() a dalších souvisejících funkcí
není nejistá. V Python 3000 budou.
pepr
___
Python mailing list
Python@py.cz
Jan Kundrát
Pavel Kosina wrote:
Kody v distribuci touto fíčurkou postiženy nebudou
(jak dlouho?), ale počítám, že u začátečníků toto
vzbudí velký kladný ohlas.
Lidem, co pisou kod v jinem jazyce, nez je anglictina,
by se mely trhat ruce, IMHO. Neni nad lusteni spanelskych
[EMAIL PROTECTED]
mne hodi chybu:(
Traceback (most recent call last):
File dombook5.py, line 50, in ?
print %s: %s\n(ISBN %s)\n\
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in
position 44: ordinal not in range(128)
A funguje obyčejný print s českými znaky v
Jakub Lucký
Který framework je podle vás nejlepší na
1) jednoduché one-night stránky
2) Rozsáhlé komplexní weby/CMS apod...
Něčím se musí začít. Někteří říkají, že na CMS
je lepší Django, ale na obecnější webové aplikace,
že je lepší TurboGears (postaveno nad CherryPy).
Pro nováčky v
Harry
[...] ale s tim while/for, tak jsem postupoval
podle Zaciname programovat v jazyce python: Harms, McDonald kde je
to jako priklad a pry verze s while je efektivnejsi, ze pry program
cte do pameti vzdy jen jeden radek oproti tomu foru, kde se pry nacita
cely soubor. Ale zda se mi to
Pavel Kosina
Radek Machulka napsal(a):
[...] Je vubec nejak mozne iterovat
pres vice seznamu (potencialne vyuzitelne
i jinde...)???
Já používám v těchto případech iteraci přes
index a ke všem seznamům se odkazuji přes
ten index. [...]
... pak by ale ty seznamy měly být stejně
Michal Vyskocil
jakeho typu je vlastně iterator? V modulu types je
ani ve verzi 2.4, ani ve 2.5 nevidím. Ani mechanicke
porovnani typu mi nevrati nic. Pritom generatory,
ktere jsou iteratorum podobne, v modulu types jsou ...
[...]
Myslite, ze je to chyba v Pythonu, nebo jsou uz
iteratory
hexim Sent: Friday, April 06, 2007 7:13 PM
[...] Jedna se mi o rozparsovani XML
dokumentu do promenne , nejlepe slovniku ,
napr x = {} aby bylo mozne
cist hodnoty nasledovne:
hodnotaA = x['tagA']
hodnotaB = x['user']
Vzorovy XML:
?xml version='1.0' encoding='UTF-8'?
myxml
Díky. Tušil jsem nějakou zradu. Nakonec jsem to principiálně
napsal takto.
===
import codecs
bom = unicode(codecs.BOM_UTF8, 'utf8')
f = codecs.open('soubor.txt', 'r', 'utf-8')
for line in f:
line = line.rstrip() + u'\n'
if
Jirka Reček
tak, tady posilam 1 muj vytvor (nic moc)
Paráda. Teď prostuduj tohle:
===
print * 30 + TEXTY (jen tak)
PRIKAZY: text1 text2 text3 konec
slovnik = { text1: python slouzi na programovani :),
text2: k pythonu
Jirka napsal:
podivej se na
http://docs.python.org/tut/node6.html#SECTION00671
na odstavecek Important warning - je to tam popsane snad lip
nez bych to dokazal vysvetlit ja...
Ne. Tohle nesouvisí s default argument values. Trefil to Leoš Pol
i Jiří Vít. Všechny
[EMAIL PROTECTED]
To som skusal ale neni to tak jednoduche.
--
[...]'''CREATE TABLE IBPDDB071/R004660V
(PERSONNRDECIMAL (10, 0)NOT NULL WITH DEFAULT,
LFDNR1 DECIMAL (3, 0) [...] );'''
regexp_sql_create=\
Petr Prikryl wrote:
[EMAIL PROTECTED]
[...]'''CREATE TABLE IBPDDB071/R004660V
(PERSONNRDECIMAL (10, 0)NOT NULL WITH DEFAULT,
LFDNR1 DECIMAL (3, 0) [...] );'''
No jasně. Když jsou vevnitř závorky, tak to nemůže
fungovat. Problém je principiální. Regulární výrazy
obecně
V pripade takto jednoducheho programu ktory ma len jednu
funkciu by return pomohol, pretoze return ukoncuje funkciu.
Ale co v pripade realneho programu, ktory ma viac funkcii?
fkt1()
fkt2()
Ak v niektorej funkcii nastane fatalna chyba chcem aby sa
ukoncil cely program a
Pavel Kosina
Dotaz: existuje editor který dokáže nastavit použité
kodovaní podle deklarovaného?
Asi jich bude víc. Poprvé jsem něco takového viděl v Emacsu.
Teď ale používám jEdit. Ten na prvních řádcích hledá sekvence,
které interpretuje jako parametry editačního okna.
Kódování se dá
MaReK Olšavský
nemate nejaky tip, jak lokalizovat programy
v Pythonu? [...]
Standardní dokumentace, Library Reference,
21. Internationalization.
Mluví se tam o modulech gettext a locale.
Zatím jsem to nepotřeboval a nevím, jak
jednoduše nebo komplikovaně se s tím dělá.
Asi záleží na tom,
Vaclav Vais
Ahoj, potřeboval bych vytvořit dynamickou dokumentaci k metodě.
Asi takto bych si to představoval...:
class Trida:
def metoda(self):
o=JinyObjekt()
def __doc__():
return o.jina_metoda.__doc__
return o.jina_metoda()
print Trida().metoda.__doc__
Osvědčil se mi občas i zápis ve stylu:
d = { 'dpath': '/home/neco',
'user': 'uu',
'host': 'h',
'spath': 'p',
}
Obsah slovníku se dá samozřejmě konstruovat dynamicky.
Jeho obsah se pak dá dosadit přes formátovací řetězec...
cmd = 'scp %(user)[EMAIL
Všechno už bylo vymyšleno. Dokonce docela dávno, kdy se s tím
člověk ještě nadřel... ;)
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52315
pepr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
Jan Matejka
[...]
1)
for v,i in enumerate(l1):
l1[i]=v+1
6.1710381
Drobná chybička, která ale může ovlivňovat výsledek.
Iterátor vracený funkcí enumerate() vrací dvojice
(index, hodnota) a ne (hodnota, index).
Je jasné, že použití enumerate bude pomalejší,
než použití xrange(),
superman
[...]
Mě osobně by zajímal rychlostní rozdíl mezi použitím range a xrange.
Ten je asi takový jako rozdíl mezi zkonstruováním pomocného
seznamu a následnou iterací přes jeho prvky (range) a přičítáním
jedničky + testem na koncovou hodnotu (xrange).
Časový rozdíl nemusí být výrazný,
superman
JInak, proc pouzivate for i in range(len(a)): ? Uz jsem si toho
vsimnul driv, u jinych prispevku. Preci, kdyz chci iterovat pres
prvky, tak musi staci for item in a:
[...]
2) Protože taková iterace je read only. Já můžu dát for item
in a, ale už nezměním ten konkrétní prvek
superman
Pokud jakákoliv konstrukce větvení nebo cyklu
neprovádí testy a jiné příkazy způsobem, který
by mohl mít za následek vedlejší efekt, a pokud
je tělo takové konstrukce prázdné, dá se úplně
vynechat.
Pokud testy volají funkci, pak jste s optimalizací
skončil. A for cyklus v
superman
Z tohoto pohledu se ptám ještě jednou. Co to je
klasický cyklus? Je jeho speciálnost pro programátora
natolik důležitá, aby opodstatnila současnou
existenci konstrukcí for/foreach? A v jakých
jazycích se takový klasický for vlastně
používá?
Já tedy nevím, ale cyklus for,
A jak se to chová, když se tam místo randint()
použije konstanta natvrdo? Třeba
high = 5
Ten test by se měl zjednodušit, aby byl
opakovatelný. Možná se při tom objeví
něco jiného.
Možná by se místo pass mělo použít něco
jiného, co se nemůže při optimalizaci
vyhodit.
Martin Blazik
superman
Možná by se místo pass mělo použít něco
jiného, co se nemůže při optimalizaci
vyhodit.
python a optimalizace? opravdu?
Opravdu!
A na jakou optimalizaci konkrétně se ptáš?
Bral jsem to spíš obecně. Ale rád se nechám
poučit, co přesně se děje při provádění pass.
Další
superman
Haha. Vzhledem k tomu, že GvR dělá problém pouhá
implementace některých příkazů, a snaží se je v
pythonu 3000 vyhodit, přičemž se tímto důvodem
vůbec netají, pak čekáte subtilnější věci jako je
optimalizace?
GvR nikomu nebrání vytvořit mnohem dokonalejší
odnož Pythonu. Čeká jen na
Jan Matejka
[...] je to spíš jako
for line in f.xreadlines():
Kde xreadlines() vrací iterátor, který čte soubor
postupně na rozdíl od readlines který přečte soubor
najednou do seznamu řádků.
Přidám se ale k nadávání na odstraňování starých prvků
jazyka. Xreadlines je od verze
superman
[...]
pepr
Kdo to řekl... Dokonalé to není tehdy, když už tam nejde
nic přidat. Dokonalé je to tehdy, když už nejde nic odebrat.
Proto se také vyhýbám dokonalým jazykům jako je Lisp. Až opravdu budu
chtít minimalistický jazyk, tak nic lepšího, než Lisp neseženete. Tam
opravdu
Na téhle stránce jsem narazil na ukázku z původní
publikace Design Patterns
http://www.research.ibm.com/designpatterns/example.htm
A řešení najdeš na
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/131499
včetně demonstračního příkladu.
Podle mého názoru je zbytečné zavádět class
superman
Roman Miklóš
V trede Statické metody v Pythonu
(http://www.py.cz/pipermail/python/2006-November/004991.html)
superman napisal:
... map,filter a podobné (což prý v další verzi Pythonu nebude...
[...] Zajímavý je blog Rossuma:
superman
[...] Osobně lambda především omezuje zbytečné definice
krátkých funkcí, které se použijí jednorázově. To může
zpřehlednit maximálním způsobem zdrojový kód. Přepsat
se samozřejmě dá všechno, protože je matematicky dokázáno,
že jakýkoli algoritmus se dá napsat pouze s podmíněným
Roman Miklos
[...]
1) pri rozvinuti argumentov s wildcard-znakmi (?, *)
na platne cesty, kde map() a reduce() umoznuju takyto
kompaktny zapis:
argument = sys.argv[1:]
filez = reduce(operator.add, map(glob.glob, argument))
Předpokládám, že samostatný skript by mohl vypadat nějak takto:
Roman Miklos
A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu?
Napriklad toto:
def linear(c):
return (lambda x: c*x)
f1=linear(1)
f2=linear(5)
for x in range(5):
print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x))
f1(0)=0, f2(0)=0
f1(1)=1, f2(1)=5
Pavel Kosina
Stejný počet řádků:
import sys
import glob
arguments = sys.argv[1:]
files = [glob.glob(mask) for mask in arguments]
print files
Jenže to dělá něco jiného ;-)
pepr
___
Python mailing list
Python@py.cz
zem_uhel + 30N54
typicky dosahuje přetížením operátoru + a typicky se
implementuje tak, že se na místě druhého argumentu očekává
konstantní reference a třídu zemepisny_uhel. Jenže u třídy
zemepisny_uhel by se v takovém případě typicky definoval
konstruktor, který bere odkaz na
Ano. Ale toto je otázka návrhu. Typicky se definuje operátor
pro sčítání (operator+() nebo __add__()), který pracuje s
argumentem stejné třídy, jako je sám objekt. V budoucnu si můžu
vymyslet další konverze, ze kterých vypadne úhel. Z hlediska
údržby je lepší, když se speciality dělají
superman
pepr
Stejně je ale otázka, jestli opravdu chci používat
statické metody třídy. V podstatě jsou elegantní jen
v případě, kdy používají proměnné stejné třídy.
A zavádění proměnných třídy v Pythonu asi taky
není moc časté. [...]
[...] Uvědomte si, že statická metoda patří do
class uhel:
@staticmethod
def static_str_na_radiany(s):
return blablabla;
[...]
class zemepisny_uhel(uhel):
def static_str_na_radiany(s):
return blablabla;
[...]
Nikdy jsem to nepoužil a nechce se mi to zkoušet.
Bude ta metoda v potomkovi automaticky
Díval jsem se na to znovu a beru zpět to,
že si myslím, že tohle využití vypadá zajímavě.
superman
[...]Protože v předkovi uhel se počítá s tím, že v metodě
__add__ se přes self předává jen jeden argument, najednou
si v potomku začne stěžovat na dva. Python má v tomhle
asi nepořádek a
mtip
PK Jakub Lucký napsal(a):
Existuje v Pythonu něco jako v Javascriptu onkeypress()
tedy funkce která kontroluje zmáčknuté klávesy?
Je něco podobného i v Tkinteru?
PK Já jsem tady za Tkinter, v ostatních GUI to jde ale
PK samozřejmě také.
PK
Martin Jedlička
... Mam napr. takovyto seznam:
a = [['aa', 'bb'], ['aa', 'cc'], ['aa', 'dd'], ['bb', 'dd'],
['bb', 'ff']]
a potreboval bych je spojit podle prniho retezce...vsechny seznamy,
ktery zacinaji na stejny retezec ('aa' nebo 'bb'), tak dat do
jednoho takto:
a = [['aa', 'bb',
Od Python 2.5 lze taky využít nový standardní modul
functools a jím definovanou funkci partial() --
viz dokumentace
6.6 functools -- Higher order functions and
operations on callable objects.
Příklad pak lze přepsat takto:
import functools
from Tkinter import*
def pis(co):
print co
Tomas Brabenec
Nevim, proc mu na ten dotaz odpovidate, kdyz neumi dodrzet
ani zakladni pravidlo konference :-(
1. Já jsem byl taky kdysi začátečník. Nenapsat subjekt
zprávy -- v tom nebývá záměr. Ten problém je navíc
pro začátečníka matoucí. Jaký by to mělo mít nadpis?
2. Zeptal se na
superman
#!/usr/bin/env python
# -*- coding: utf-8 -*-
nepomuze?
Tak bohužel to dělá to samé, akorát ještě hlásí:
Traceback (most recent call last):
File C:\home\astrol\astrology_angle.py, line 28, in ?
print __AstrologyAngleRegExp
File
Martin Jedlička
Zdravim, pouzivam wxPython, ve kterem mam aplikaci s menu. Ted jsem
udelal submenu a potreboval bych vedet, jak jednu polozku
toho subemenu
nastavim jako disable (aby byla sediva a nedalo se na ni kliknout).
Zkus nainstalovat demo k wxPython a najdi si tam ...\demo\Menu.py.
[...] Dám takový příklad,
při kterém se mi ježí zbývající vlasy na hlavě: direktorář
Určitě se to víc blíží anglickému originálu. Ale vypadá
to (z mého pohledu) hrozně a nemůžu říct, že by to
mělo větší vypovídací schopnost, než adresář.
directory nebo adresar je uz IMHO natolik
Pár poznámek...
[...] Nicméně stejně si myslím, že čím méně cizích
slov, tím je jakýkoliv text čitelnější i lajkům. [...]
Je to, dle mne, nížší češtinářská invence a odvaha
u těch prvních odborníků, co se s pojmy setkávají
jako první, že je prostě použijí tak jak jsou a ostatní
je
Zkus os.popen2() nebo os.popen3() a analyzovat err výstup. Příklad:
import os
cin, cout = os.popen2('cvs --version')
lines = cout.read()
print lines
cin.close()
cout.close()
print '-' * 70
cin, cout, cerr = os.popen3('cvs --version')
lines = cout.read()
print cout: ' + lines + '
lines =
Ahoj všichni,
Máte někdo zkušenosti s editorem SPE?
Můžete porovnat s IDLE, případně s jinými editory?
SPE = Stani's Python Editor
http://stani.be/python/spe/
Krátká zmínka je na http://www.py.cz/EditoryIDE,
ale je moc obecná.
pepr
___
Python mailing
Dík aspoň za potvrzení, že jsem na dobré stopě, ale...
Martin Blazik
mozna by stalo za to, se na tu stranku prece jen podivat :)
Je tam primo priklad na to co potrebujes.
http://docs.python.org/lib/urllib2-examples.html
Jinak ja pouzivam nasledujici kod, ale to je bez autentifikace.
import
Nesouhlasm. Toužím po evoluční revoluci!
Je to TA KOMPONENTA! :-)
Pavel Reznicek...
pozor na komponentu! Normální české slovo přejaté
dříve z latinského componens = pojící se (s
ostatními částmi celku) zní komponent v mužském
rodě. Nevím, kdo vymyslel patvar (i když sladce ženský)
Stefan Oravec
[...]
howgh
Já to píšu česky -- Houk ;-)
pepr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
Kurňa, byl jsem pomalý :-)
Jan Martinek
[...]
poslal jsem to jako bugreport a zde je vyjádření vývojářů:
[...]
This isn't really a bug, atleast not one that we plan to
fix. The order in which modules get emptied is unspecified,
and it can easily happen that things are gone when some
Těsně vedle... ;-)
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Luk Mar
Sent: Wednesday, March 15, 2006 10:52 PM
To: python@py.cz
Subject: [python] (no subject)
Ahoj, slysel jsem, ze Kardos v predmetu Hodnoceni jakosti IS
zrusil eseje, tak
70 matches
Mail list logo