<tt><font size=2>> v tom případě by mělo fungovat i<br>
> >>> a=i*i for i in range(3)<br>
> jinak je to chaos</font></tt>
<br>
<br>
<br><font size=2 face="sans-serif">Nenazyva sa to "chaos" ale
"syntactic sugar" </font>
<br><font size=2 face="sans-serif">:-)</font>
<br>
<br><font size=2 face="sans-serif">Na druhej strane, ak by fungovalo toto</font>
<br>
<br><font size=2 face="sans-serif">a=i*i for i in range(3)</font>
<br>
<br><font size=2 face="sans-serif">tak to by si mohol zas niekto vysvetlovat,
ze to je to iste ako toto</font>
<br>
<br><font size=2 face="sans-serif">>>> for i in range(3):</font>
<br><font size=2 face="sans-serif">... a=i*i</font>
<br>
<br><font size=2 face="sans-serif">kde a je vlastne premenna do ktorej
sa priradi i*i. V skutocnosti ma premenna ale ukazovat na objekt typu generator
</font>
<br>
<br><font size=2 face="sans-serif">>>> a</font>
<br><font size=2 face="sans-serif"><generator object at 0x00DFEF30></font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Dalej ale, ak sa da namiesto</font>
<br>
<br><font size=2 face="sans-serif">>>> sum((i*i for i in range(3)))</font>
<br><font size=2 face="sans-serif">5</font>
<br>
<br><font size=2 face="sans-serif">zjednodusene napisat aj toto </font>
<br>
<br><font size=2 face="sans-serif">>>> sum(i*i for i in range(3))</font>
<br><font size=2 face="sans-serif">5</font>
<br>
<br><font size=2 face="sans-serif">tak clovek by ocakaval, ze aj namiesto</font>
<br>
<br><font size=2 face="sans-serif">>>> sum((1, 2, 3))</font>
<br><font size=2 face="sans-serif">6</font>
<br>
<br><font size=2 face="sans-serif">sa bude dat zjednodusene napisat iba
toto</font>
<br>
<br><font size=2 face="sans-serif">>>> sum(1, 2, 3)</font>
<br><font size=2 face="sans-serif">Traceback (most recent call last):</font>
<br><font size=2 face="sans-serif"> File "<interactive input>",
line 1, in <module></font>
<br><font size=2 face="sans-serif">TypeError: sum expected at most 2 arguments,
got 3</font>
<br>
<br><font size=2 face="sans-serif">Ako vidiet, toto ale nefunguje.</font>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From:
</font><font size=1 face="sans-serif">David Rohleder <davro@ics.muni.cz></font>
<br><font size=1 color=#5f5f5f face="sans-serif">To:
</font><font size=1 face="sans-serif">Konference PyCZ <python@py.cz></font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date:
</font><font size=1 face="sans-serif">05.03.2010 12:45</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject:
</font><font size=1 face="sans-serif">Re: [python]
dokumentace k novejsim rysum jazyka</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Sent by:
</font><font size=1 face="sans-serif">python-bounces@py.cz</font>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>RMiklos@pss.sk píše v Pá 05. 03. 2010 v 10:31 +0100:<br>
> >problém je v tomto:<br>
> ><br>
> >sum je standardní funkce:<br>
> ><br>
> >>>> sum(i**i for i in range(10))<br>
> ><br>
> >tady mně to prostě uniká - když závorky patří funkci sum,
tak vnitřek<br>
> by<br>
> >měl být uzavřený do závorek taky.<br>
> <br>
> funguje to takto <br>
> >>> sum(i*i for i in range(3)) <br>
> 5 <br>
> alebo aj takto ked je vnutrajsok funkcie sum() uzavrety do zatvoriek:
<br>
> >>> sum((i*i for i in range(3))) <br>
> 5 <br>
> <br>
<br>
v tom případě by mělo fungovat i<br>
<br>
>>> a=i*i for i in range(3)<br>
<br>
jinak je to chaos<br>
<br>
> <br>
> <br>
> <br>
> <br>
> From: David Rohleder <davro@ics.muni.cz>
<br>
> To: Konference PyCZ <python@py.cz>
<br>
> Date: 05.03.2010 08:00 <br>
> Subject: Re: [python] dokumentace k novejsim
rysum jazyka <br>
> Sent by: python-bounces@py.cz <br>
> <br>
> ______________________________________________________________________<br>
> <br>
> <br>
> <br>
> Jirka Vejrazka píše v Pá 05. 03. 2010 v 01:01 +0100:<br>
> > > čili se to chová jinak než standardní tuple, je to spíš
něco, čemu<br>
> se říká generátor.<br>
> > <br>
> > Nojo, vida - to jsem nevedel, ze s kulatymi zavorkami to vytvori<br>
> > generator, diky :)<br>
> > <br>
> > Generator ma tu vyhodu, ze se nic nevytvari v pameti. Zrejme
je to,<br>
> > kdyz se pouzije misto range (ktery interne dela list) funkce
xrange<br>
> > (coz je taky generator) - tohle plati pro Python 2.4 ktery ted
mam<br>
> > spusteny, v novejsich uz je to mozna jinak)<br>
> > <br>
> > >>> a = [x for x in xrange(100000000)] # vytvori
v pameti list,<br>
> ktery ma 100 milionu prvku (bude chvili trvat)<br>
> > >>> a = (x for x in xrange(100000000)] # bleskove
vytvori<br>
> generator, ktery po zavolani a.next() najde a vrati "dalsi prvek
v<br>
> poradi"<br>
> > <br>
> > >>>> b=(1,2,3)<br>
> > >>>> b.next()<br>
> > > Traceback (most recent call last):<br>
> > > File "<stdin>", line 1, in <module><br>
> > > AttributeError: 'tuple' object has no attribute 'next'<br>
> > <br>
> > Tohle uz je logicke, to je normalni tuple.<br>
> > <br>
> > > Mně se takové věci celkem líbí, ale připadne mně to
nějak<br>
> nedomyšlené,<br>
> > > protože by celý ten generátor měl tvořit samostatnou
syntaktickou<br>
> > > jednotku, tj. interpret by měl nějak sežrat zápis<br>
> > ><br>
> > >>>> i*i for i in range(10)<br>
> > <br>
> > Proc, tady nejsou okolo zavorky, je to syntakticky neco uplne<br>
> jineho...<br>
> > <br>
> <br>
> problém je v tomto:<br>
> <br>
> sum je standardní funkce:<br>
> <br>
> >>> sum(i**i for i in range(10))<br>
> <br>
> tady mně to prostě uniká - když závorky patří funkci sum, tak
vnitřek<br>
> by<br>
> měl být uzavřený do závorek taky.<br>
> <br>
> D.<br>
> <br>
> _______________________________________________<br>
> Python mailing list<br>
> Python@py.cz<br>
> </font></tt><a href=http://www.py.cz/mailman/listinfo/python><tt><font size=2>http://www.py.cz/mailman/listinfo/python</font></tt></a><tt><font size=2><br>
> <br>
> _______________________________________________<br>
> Python mailing list<br>
> Python@py.cz<br>
> </font></tt><a href=http://www.py.cz/mailman/listinfo/python><tt><font size=2>http://www.py.cz/mailman/listinfo/python</font></tt></a><tt><font size=2><br>
<br>
<br>
_______________________________________________<br>
Python mailing list<br>
Python@py.cz<br>
</font></tt><a href=http://www.py.cz/mailman/listinfo/python><tt><font size=2>http://www.py.cz/mailman/listinfo/python</font></tt></a><tt><font size=2><br>
</font></tt>
<br>