• Jueves 28 de Marzo de 2024, 20:42

Autor Tema:  Enteros desde consola  (Leído 1662 veces)

Gandalf Empire

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Enteros desde consola
« en: Lunes 8 de Febrero de 2010, 12:54 »
0
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
  1.  
  2. entrada = raw_input()
  3. entero = int(entrada)
  4.  
  5.  
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 modificación: Lunes 8 de Febrero de 2010, 15:40 por Gandalf Empire »

rive08

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Enteros desde consola
« Respuesta #1 en: Lunes 8 de Febrero de 2010, 14:34 »
0
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
  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..."
  8.  

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.

Gandalf Empire

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Enteros desde consola
« Respuesta #2 en: Lunes 8 de Febrero de 2010, 14:39 »
0
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!

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Enteros desde consola
« Respuesta #3 en: Lunes 8 de Febrero de 2010, 14:57 »
0
Código: Python
  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.  
  10.  
El pasado son solo recuerdos, el futuro son solo sueños

Gandalf Empire

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Enteros desde consola
« Respuesta #4 en: Lunes 8 de Febrero de 2010, 15:20 »
0
Cita de: "Edo"
Código: Python
  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.  
  10.  
Este último es de Python 3, ¿no?.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Enteros desde consola
« Respuesta #5 en: Lunes 8 de Febrero de 2010, 15:24 »
0
No.
El pasado son solo recuerdos, el futuro son solo sueños