Re: [pyar] ¿If anidado?

Página superior
Adjuntos:
+ (text/plain)

Responder a este mensaje
Autor: Roberto Alsina
Fecha:  
A: pyar
Asunto: Re: [pyar] ¿If anidado?
On Thursday 17 September 2009 11:56:38 Claudio Freire wrote:
> 2009/9/16 Facundo Batista <facundobatista@???>
>
> > 2009/9/16 Charif Mauricio Nadir <mry.shariff@???>:
> > > El uso de la sentencia break está considerada como una mala práctica,
> > > al igual que continue. El flujo de un programa debe ser fácil de seguir
> > > sin saltos y sin interrumpir el flujo de las estructuras de control.
> >
> > No estoy de acuerdo.
> >
> > ...
> > while True:
> > edad = raw_input(mssg)
> > if edad.isdigit():
> > break
> >
> > print "no nro"
>
> El problema de los while True y los breaks es que hacen el análisis de
> correctitud y terminación por invariantes casi imposible.
> Están deprecados en el mundo de la programación porque es muy difícil,
> leyéndolos, asegurar que no es un loop infinito, y que cuando sale el
> invariante (si hay) se cumple.
>
> Aquí, claro está, realmente podría ser un loop infinito (el usuario nunca
> tipea un número), y el único invariante deseado es "edad.isdigit()" -
> nuevamente, ese while True hace menos evidente que al salir del loop, edad
> es en efecto un número.
>
> Por eso yo propongo:
>
> edad = None
> while edad is None or not edad.isdigit():
> edad = raw_input("dale... un numerito...")
>
> La ventaja: al salir del loop uno sabe:
> 1) que "edad is not None" (útil)
> 2) que "edad.isdigit()" (útil)


Todo bien, pero no hace lo mismo que el código que intenta reemplazar.

-- 
 ("\''/").__..-''"`-. .         Roberto Alsina
 `9_ 9  )   `-. (    ).`-._.`)  KDE Developer (MFCH)
 (_Y_.)' ._   ) `._`.  " -.-'  http://lateral.netmanagers.com.ar 
  _..`-'_..-_/ /-'_.'     The 6,855th most popular site of Slovenia   
(l)-'' ((i).' ((!.'       according to alexa.com (27/5/2007) 


---------------------------------------------------------------------
Para dar de baja la suscripcion, mande un mensaje a:
   pyar-unsubscribe@???


Para obtener el resto de direcciones-comando, mande un mensaje a:
pyar-help@???

PyAr - Python Argentina - Sitio web: http://www.python.com.ar/