Programación Web y Scripting => Python => Mensaje iniciado por: Gandalf Empire en Lunes 8 de Febrero de 2010, 12:54
Título: Enteros desde consola
Publicado por: Gandalf Empire en Lunes 8 de Febrero de 2010, 12:54
Tengo un problema, me gustaría capturar un numero entero desde consola. Hasta ahora lo que he podido hacer es un casting con la función raw_input(). Más o menos de esta forma:
Código: Python
entrada =raw_input()
entero =int(entrada)
No obstante, esto me daría problemas si el usuario me escribe un carácter o si simplemente pulsa ENTER, (debido a que no se puede hacer el casting). Me preguntaba si se puede hacer una función condicional que compruebe si se puede realizar el casting o no, o si así como el raw_input() exisitiese otra función que en lugar de capturar string capture directamente enteros.
Título: Re: Enteros desde consola
Publicado por: rive08 en Lunes 8 de Febrero de 2010, 14:34
Buen día Gandalf Empire,
Este código lo encontré en la documentación de python en la página que habla sobre el "manejo de errores". Había puesto la página, pero el foro todavía no me deja insertar links :-(
Código: Python
whileTrue:
try:
x =int(raw_input("Please enter a number: "))
break
exceptValueError:
print"Oops! That was no valid number. Try again..."
La idea es la siguiente, el cast lo hacés diréctamente cuando estás tomando los valores que ingresa el usuario por pantalla. Y por medio del "try: --> except" estás atrapando el error de tipo "ValueError", que es justamente el tipo de error que va a tirar el código si el usuario ingresa un valor que no puede ser convertido a int. Si no estás muy ducho con el manejo de errores en python, la documentación oficial de python te puede ayudar. Nuevamente, pido disculpas por no poder insertar el link, pero, me imagino será un tema de seguridad del foro, así que . . no me quejo ;-) Espero que te sirva. Saludos, Rive.
Título: Re: Enteros desde consola
Publicado por: Gandalf Empire en Lunes 8 de Febrero de 2010, 14:39
Hey!, era esto lo que buscaba. De todas formas debo pedir perdón por no haber mirado bien la documentación... Pero esto resuelve mi problema. En cierto modo es muy parecido a Java... ¡Muchísimas gracias!
Título: Re: Enteros desde consola
Publicado por: RadicalEd en Lunes 8 de Febrero de 2010, 14:57
Código: Python
num =''
whiletype(num)isnotint:
try:
num =input('Digite entero: ')
except:
pass
print num
Título: Re: Enteros desde consola
Publicado por: Gandalf Empire en Lunes 8 de Febrero de 2010, 15:20
Cita de: "Edo"
Código: Python
num =''
whiletype(num)isnotint:
try:
num =input('Digite entero: ')
except:
pass
print num
Este último es de Python 3, ¿no?.
Título: Re: Enteros desde consola
Publicado por: RadicalEd en Lunes 8 de Febrero de 2010, 15:24