[PIPython] problema mappa

Mariano Di Felice mardif
Mer 25 Maggio 2005 13:45:09 CEST


Valentino Volonghi aka Dialtone wrote:

>Andrea Giammarchi wrote:
>
>  
>
>>esempio uscita da for o while
>>for( i = 0; i < 1000; i++) {
>>if( condizione ) {
>>i = 1000; // esce dal for
>>}
>>}
>>    
>>
>
>Questo non e` per nulla pulito. Ma per nulla. E` un'alterazione
>inaspettata di
>un valore per nessuna buona ragione a mio modo di vedere. Tra l'altro mi
>piacerebbe
>controllare se il valore di i e` specificato in ANSI C dopo la fine del
>ciclo. Se lo fosse
>questo e` un modo inaccettabile in modo assoluto.
>
>  
>
>>while( condizione ) {
>>if( sotto_condizione ) {
>>condizione = false; // esce dal while
>>}
>>}
>>    
>>
>
>Ottimo, si fa anche in python, non vedo problemi.
>
>  
>
>>class Break(Exception):
>>   def __init__(self, value):
>>       self.value = value
>>   def __str__(self):
>>       return repr(self.value)
>>   def get(self):
>>       return self.value
>>  lista = {('value a'):'a', ('value b'):'b', ('value c'):'c'}
>>
>>try:
>>   for chiave, valore in lista.iteritems():
>>       print chiave, valore
>>       if valore == 'b':
>>           print '-- fine iterazione --'
>>           raise Break(lista)
>>except Exception, lista:
>>   lista = lista.get()
>>   for chiave, valore in lista.iteritems():
>>       print chiave, valore
>>    
>>
>
>Invece di usare una linea con scritto solo break per terminare tutto,
>scrivi sto popo` di linee.
>Ci saranno piu` possibilita` di avere bachi in un 'break' o in quello
>che hai scritto tu?
>Bisogna essere pragmatici nella vita. Prima di dire NO a una soluzione
>e` utile valutare le alternative,
>come hai fatto tu, ma una volta visto che l'alternativa non offre nulla
>di meglio (e in questo caso
>e` chiaro come l'oro per piu` ragioni, ad esempio hai un except
>Exception, ovvero prendi quasi tutto
>praticamente.) si torna sulla propria strada.
>
>Perche` mai il break sarebbe adatto agli switch e non al resto? Per
>abitudine? ti abituerai anche a
>vederlo negli iteratori, l'unico effetto che ha una break e` che, quando
>messa in un ciclo (while o for),
>obbliga a tornare a un livello di indentazione in meno alla fine del
>corpo del for. Cosa che guardando
>il codice e` assolutamente immediata e chiara.
>
>Ci sono tanti tanti miti sul perche` evitare di usare X o Y. E ci sono
>altrettanti esempi di come usandoli
>nel modo giusto X e Y non fanno alcun danno, anzi. Migliorano la
>leggibilita`.
>
>  
>
Cavolo, non pensavo di creare così tante discussioni per un ciclo for ...
Cmq, sono d'accordo con Valentino Volonghi: inutile creare classi Break 
con try except multipli perchè l'ANSI C non è d'accordo. Io sono 
convinto che, se fosse stata una procedura richiosa che avrebbe portato 
ad un 50% di possibilità di crash, python non avrebbe accettato il break 
nel ciclo in esame.
Resta comunque fermo il punto che, se quel professore sopra citato ci 
facesse la grazia di spiegarci il perchè di tale negazione del break ( e 
magari anche una valida alternativa ), saremmo tutti più contenti e 
soddisfatti :-).

Sentite, io ho risolto con un bel break messo dopo aver trovato ciò che 
cercavo nel ciclo. e a quanto sembra, funziona pure.
Quindi per me, il caso è chiuso, a meno di smentite provviste di 
adeguata documentazione ed esempi.

saluti a tutti e buona giornata

-- 

/\/\ariano Di Felice
Java PHP Python programmer
with MySQL, PostgreSql, SQLite and Oracle support
Linux Platform Developer
mariano.difelice a eprometeus.com
www.eprometeus.com
Tel. 0735 656881
Fax. 0735 656307
---------------------------------------------------------
NO ai brevetti software! http://www.nosoftwarepatents.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mardif.vcf
Type: text/x-vcard
Size: 263 bytes
Desc: not available
Url : http://list.zope.it/pipermail/python/attachments/20050525/de1eec86/mardif.vcf


More information about the Python mailing list