Cómo lidiar con entradas no válidas en Python

| Última modificación: 24 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el mundo de la programación, especialmente en Python, nos encontramos constantemente con diferentes tipos de datos y variables. Sin embargo, no siempre recibimos las entradas que esperamos. En este artículo, te enseñamos cómo lidiar con las entradas no válidas en Python para sumergirnos en el fascinante mundo de la programación orientada a objetos.

¿Qué son las entradas no válidas en Python?

Antes de profundizar en las soluciones, es importante entender qué son las entradas no válidas en Python. En pocas palabras, se refieren a cualquier dato o valor que no cumple con las expectativas o requisitos específicos de un programa.

Imagina que tienes un programa que le solicita al usuario ingresar un número entero, pero, en lugar de eso, el usuario ingresa “Hola Mundo” o un correo electrónico. Esto sería un ejemplo claro de una entrada no válida.

Las entradas no válidas en Python pueden causar errores inesperados en tu código y hacer que tu programa falle. Por lo tanto, es esencial saber cómo manejar estas situaciones de manera adecuada.

El bloque try…except

Una de las formas más comunes de manejar las entradas no válidas en Python es utilizando el bloque try…except. Este bloque te permite probar un bloque de código y, si ocurre una excepción, manejarla de manera elegante sin que tu programa se bloquee.

try: 
     numero = int(input("Ingresa un número entero: ")) 
except ValueError: 
     print("Eso no parece ser un número entero válido.")

En el código anterior, estamos utilizando int(input()) para intentar convertir la entrada del usuario en un número entero. Si el usuario ingresa algo que no se puede convertir en un número entero (como “Hola Mundo”), se generará una excepción ValueError, y el programa imprimirá un mensaje de error en lugar de fallar.

Usando elif y not para validaciones adicionales

El bloque try…except es poderoso, pero a veces es necesario realizar validaciones adicionales para asegurarse de que las entradas sean válidas. Esto se puede lograr usando declaraciones elif (abreviatura de “else if”) y la palabra clave not.

try: 
     numero = int(input("Ingresa un número entero: ")) 
except ValueError: 
     print("Eso no parece ser un número entero válido.") 
else: 
     if numero < 0: 
           print("El número debe ser positivo.") 
     elif numero % 2 == 0: 
           print("El número es par.") 
     else: 
           print("El número es impar.")

En este ejemplo, después de asegurarnos de que la entrada es un número entero válido, realizamos validaciones adicionales para verificar si es positivo o par/impar.

Buena práctica: Validación continua del código

Es importante destacar que manejar las entradas no válidas en un solo lugar del código no siempre es suficiente. Es una buena práctica realizar validaciones continuas a medida que se procesa la entrada del usuario en todo el programa. Esto garantiza que las entradas no válidas sean manejadas en tiempo real y que el programa funcione de manera más robusta.

Letras y números en las entradas

A menudo, las entradas no válidas pueden incluir una combinación de letras y números. En estos casos, puedes utilizar funciones como isalpha() e isdigit() para verificar si una cadena contiene solo letras o números, respectivamente.

entrada = input("Ingresa una cadena: ") 

if entrada.isalpha(): 
    print("La entrada contiene solo letras.") 
elif entrada.isdigit(): 
    print("La entrada contiene solo números.") 
else: 
    print("La entrada contiene tanto letras como números.")

Es fundamental que un desarrollador sepa manejar las entradas no válidas, porque cuando los usuarios interactúan con una aplicación, es esencial proporcionar retroalimentación y manejar sus errores de manera amigable. Mostrar mensajes de error claros y útiles en lugar de errores técnicos crípticos mejora significativamente la experiencia del usuario.

Además, las entradas no válidas pueden utilizarse de manera maliciosa para atacar una aplicación. Si no se manejan adecuadamente, los atacantes podrían explotar vulnerabilidades en el programa. Validar y filtrar las entradas ayuda a prevenir ataques comunes, como la inyección de SQL o el cross-site scripting (XSS).

Continúa aprendiendo en KeepCoding

Lidiar con entradas no válidas en Python es esencial para escribir programas robustos y amigables para el usuario. El uso del bloque try…except, combinado con validaciones adicionales, te permite manejar estas situaciones de manera efectiva.

Transforma tu vida y ábrete a un mundo lleno de nuevas oportunidades al unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. Este programa no solo te enseñará a manejar entradas no válidas en Python, sino que también te proporcionará las habilidades esenciales necesarias para destacar en el desarrollo web. No pierdas más tiempo y embárcate en esta emocionante aventura hacia una carrera en el sector tecnológico, donde podrás disfrutar de salarios altos y una estabilidad laboral incomparable con otros sectores. Pide información ya mismo, ¡el futuro que deseas está a solo un paso de distancia!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado