ve tretim radku ma byt samozrejme<br> if not znak in "0123456789abcdef":<br><br>omlouvam se za hloupou chybu, psal jsem to z hlavy a nekontroloval<br><br>Koumes21<br><br><div><span class="gmail_quote">2008/4/23, Koumes21 <<a href="mailto:koumes21@gmail.com">koumes21@gmail.com</a>>:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Například když chci otestovat všechny položky seznamu nebo se všemi něco provést a za určitého předpokladu vím, že nemusím v testování pokračovat, je jednodušší použí break. Ale když chci na základě toho jestli proces proběhl až do konce nebo byl přerušen něco provést, použiju právě else.<br>
Například takto:<br><br>n=raw_input()<br>for znak in n:<br> if not n in "0123456789abcdef":<br> print "spatne"<br> break<br>else:print "spravne"<br><br>pozn.: místo toho by šlo v nové verzi použít all(map(lambda x:x in "0123456789abcdef",n))<br>
<br>kdyby ovšem neměl řetězec ani jeden znak, pak by to podle vašeho systému nebylo ani "spravne" ani "spatne", tak jak to je nyní v pythonu bude vysledek "spravne"<br><br>Koumes21<br><br><div>
<span class="gmail_quote">2008/4/23, Dusan Zatkovsky <<a href="mailto:msk.conf@seznam.cz" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">msk.conf@seznam.cz</a>>:</span><div><span class="e" id="q_1197b89982d9827f_1"><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
DD.<br><br> Riesili sme tu s kolegami jeden priklad, ktory na prvy pohlad bol syntakticky<br> nespravne. Potom som na neho narazil na<br><a href="http://docs.python.org/tut/node6.html#SECTION006400000000000000000" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://docs.python.org/tut/node6.html#SECTION006400000000000000000</a> a z<br>
dokumentacie som zistil, ze je dokonca syntakticky spravne.<br><br> Tak som sa s for-else chcel zoznamit a tak som si vytvoril 3 testcase:<br><br> # cyklus sa vykona<br> for x in 'a':<br> pass<br> else:<br>
print "test1"<br><br> # cyklus sa vykona a breakne<br> for x in 'a':<br> break<br> else:<br> print "test2"<br><br> # cyklus sa nevykona<br> for x in '':<br> pass<br>
else:<br> print "test3"<br><br><br> Vysledok zodpoveda tomu, co vravi dokumentacia, ale mne to pride zvratene.<br><br> Preco to else zavisi na break vo vnutri cyklu a nie na tom, ci sa cyklus<br> vykonal, alebo nie? Ked totiz na toto narazi niekto, kto sa python uci, tak<br>
sa z toho osype ( pisem prilezitostne v pythone uz 2 roky a je to aj moj<br> pripad ).<br><br><br> Mozete mi niekto ozrejmit, co tym autor myslel a preco je ta logika postavena<br> prave takto? Intuicia mi totiz hovori, ze else by sa malo vykonat prave ked<br>
sa nevykona ani jeden priebeh cyklu...<br><br><br> Dik<br><br><br> --<br> Dusan<br> _______________________________________________<br> Python mailing list<br><a href="mailto:Python@py.cz" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.py.cz/mailman/listinfo/python</a><br></blockquote></span></div></div><br></blockquote></div>
<br>