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