[python] for-else -> wtf?

Koumes21 koumes21 na gmail.com
Středa Duben 23 15:49:36 CEST 2008


ve tretim radku ma byt samozrejme
    if not znak in "0123456789abcdef":

omlouvam se za hloupou chybu, psal jsem to z hlavy a nekontroloval

Koumes21

2008/4/23, Koumes21 <koumes21 na gmail.com>:
>
> 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.
> Například takto:
>
> n=raw_input()
> for znak in n:
>     if not n in "0123456789abcdef":
>         print "spatne"
>         break
> else:print "spravne"
>
> pozn.: místo toho by šlo v nové verzi použít all(map(lambda x:x in
> "0123456789abcdef",n))
>
> 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"
>
> Koumes21
>
> 2008/4/23, Dusan Zatkovsky <msk.conf na seznam.cz>:
> >
> > DD.
> >
> > Riesili sme tu s kolegami jeden priklad, ktory na prvy pohlad bol
> > syntakticky
> > nespravne. Potom som na neho narazil na
> > http://docs.python.org/tut/node6.html#SECTION006400000000000000000 a z
> > dokumentacie som zistil, ze je dokonca syntakticky spravne.
> >
> > Tak som sa s for-else chcel zoznamit a tak som si vytvoril 3 testcase:
> >
> > # cyklus sa vykona
> > for x in 'a':
> >         pass
> > else:
> >         print "test1"
> >
> > # cyklus sa vykona a breakne
> > for x in 'a':
> >         break
> > else:
> >         print "test2"
> >
> > # cyklus sa nevykona
> > for x in '':
> >         pass
> > else:
> >         print "test3"
> >
> >
> > Vysledok zodpoveda tomu, co vravi dokumentacia, ale mne to pride
> > zvratene.
> >
> > Preco to else zavisi na break vo vnutri cyklu a nie na tom, ci sa cyklus
> > vykonal, alebo nie? Ked totiz na toto narazi niekto, kto sa python uci,
> > tak
> > sa z toho osype ( pisem prilezitostne v pythone uz 2 roky a je to aj moj
> > pripad ).
> >
> >
> > Mozete mi niekto ozrejmit, co tym autor myslel a preco je ta logika
> > postavena
> > prave takto? Intuicia mi totiz hovori, ze else by sa malo vykonat prave
> > ked
> > sa nevykona ani jeden priebeh cyklu...
> >
> >
> > Dik
> >
> >
> > --
> > Dusan
> > _______________________________________________
> > Python mailing list
> > Python na py.cz
> > http://www.py.cz/mailman/listinfo/python
> >
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20080423/0d104121/attachment.htm 


Další informace o konferenci Python