Enteros desde consola

Moderador: NRM

Enteros desde consola

Notapor Gandalf Empire » Lun Feb 08, 2010 12:54 pm

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:

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.
Última edición por Gandalf Empire el Lun Feb 08, 2010 3:40 pm, editado 1 vez en total
Gandalf Empire
Nuevo miembro
 
Mensajes: 3
Registrado: Jue Feb 04, 2010 2:18 pm

Re: Enteros desde consola

Notapor rive08 » Lun Feb 08, 2010 2:34 pm

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 :-(

  1.  
  2. while True:
  3.    try:
  4.    x = int(raw_input("Please enter a number: "))
  5.    break
  6. except ValueError:
  7.    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.
rive08
Nuevo miembro
 
Mensajes: 11
Registrado: Mié Oct 07, 2009 8:14 pm

Re: Enteros desde consola

Notapor Gandalf Empire » Lun Feb 08, 2010 2:39 pm

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!
Gandalf Empire
Nuevo miembro
 
Mensajes: 3
Registrado: Jue Feb 04, 2010 2:18 pm

Re: Enteros desde consola

Notapor Edo » Lun Feb 08, 2010 2:57 pm

  1. num = ''
  2. while type(num) is not int:
  3.     try:
  4.         num = input('Digite entero: ')
  5.     except:
  6.         pass
  7.  
  8. print num
  9.  
Avatar de Usuario
Edo
Gran Colaborador
 
Mensajes: 2266
Registrado: Vie Ago 13, 2004 5:16 pm
Ubicación: Entre mi mente humana y lo que queda de ella. Colombia (co)

Re: Enteros desde consola

Notapor Gandalf Empire » Lun Feb 08, 2010 3:20 pm

Edo escribió:
  1. num = ''
  2. while type(num) is not int:
  3.     try:
  4.         num = input('Digite entero: ')
  5.     except:
  6.         pass
  7.  
  8. print num
  9.  

Este último es de Python 3, ¿no?.
Gandalf Empire
Nuevo miembro
 
Mensajes: 3
Registrado: Jue Feb 04, 2010 2:18 pm

Re: Enteros desde consola

Notapor Edo » Lun Feb 08, 2010 3:24 pm

No.
Avatar de Usuario
Edo
Gran Colaborador
 
Mensajes: 2266
Registrado: Vie Ago 13, 2004 5:16 pm
Ubicación: Entre mi mente humana y lo que queda de ella. Colombia (co)


Volver a Python

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados