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/