[pyar] [Programacion] input function

Angel Java Lopez ajlopez2000 en gmail.com
Mie Mar 7 13:08:59 ART 2012


En .NET aparecio hace un tiempo (no estaba en la primera version

bool int.TryParse(string s, out ref i)

justamente para no ir a tener que tratar excepciones

Se podria hacer algo asi en Python?

Nota accesoria: atenti al piojo, que "-123".isdigit() da falso, y
int("-123") funciona

2012/3/7 fisa <fisadev en gmail.com>

> El día 7 de marzo de 2012 11:24, Claudio Freire
> <klaussfreire en gmail.com> escribió:
> > 2012/3/7 Ezequiel - <ezequielchan en gmail.com>:
> >> Que quiero decir con eso? que podes usar un try, no cuesta nada hasta
> >> que empiezan a existir exceptions en el medio, levantar toda la info
> >> necesaria es mas costosa y esta bien que no debas optimizar el código
> >> antes, pero para mi es mucho mas elegante y legible.
> >
> > Y equivocado, en mi opinión.
> >
> > Las validaciones que hace int() no son fácilmente reproducibles, y no
> > hay real necesidad de reproducirlas, cuando que es perfectamente
> > esperable que int() tire excepción. Lo que está mal es:
> >
> > try:
> >     x = hacealgo_con_el_numero(int(raw_input(...)))
> > except:
> >     print "Meté un número"
> >
> > Pero simplemente porque estás protegiendo mucho más código del deseado
> > y atrapando cualquier cosa indiscriminadamente, escondiendo errores
> > más que recuperándote de los mismos.
> >
> > Lo correcto:
> >
> > x = raw_input(...)
> > try:
> >    x = int(x)
> > except ValueError:
> >    print "Meté un número"
> >
> > O sea, sólo atrapás el error que querés atrapar (ValueError), y sólo
> > protegés int(x).
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
> IMHO
> Es verdad que en este caso se sigue haciendo necesario el try/except,
> porque no es simple reproducir todas las validaciones que haría int().
> Pero entiendo lo que quiso decir ezequiel y es muy cierto. Es bastante
> común ver abusos de try/except, donde es usado como estructura de
> control para cosas que no son su objetivo.
> Try/except sirve para capturar excepciones, para manejarlas con
> "gracia", pero capturar una exception es un proceso mucho más caro que
> resolver antes el camino con un if. El try/except debería ser el
> "último recurso" para las cosas que no pudimos evitar por caminos
> normales.
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120307/523e284d/attachment.html>


More information about the pyar mailing list