Validar entrada

El código de validación de entrada comprueba que los valores introducidos por el usuario, como el texto de la función input(), tienen el formato correcto. Por ejemplo, si quiere que los usuarios introduzcan su edad, su código no debería aceptar respuestas sin sentido como números negativos (que están fuera del rango de enteros aceptables) o palabras (que son el tipo de datos incorrecto). La validación de la entrada también puede evitar errores o vulnerabilidades de seguridad. Si implementa una función withdrawFromAccount() que toma un argumento para la cantidad a restar de una cuenta, necesita asegurarse de que la cantidad es un número positivo. Si la función withdrawFromAccount() resta un número negativo de la cuenta, la «retirada» acabará añadiendo dinero.

Normalmente, realizamos la validación de la entrada preguntando repetidamente al usuario hasta que introduzca un texto válido, como en el siguiente ejemplo:

while True:
    print('Enter your age:')
    age = input()
    try:
        age = int(age)
    except:
        print('Please use numeric digits.')
        continue
    if age < 1:
        print('Please enter a positive number.')
        continue
    break

print(f'Your age is {age}.')

Al ejecutar este programa, la salida podría ser la siguiente:

Enter your age:
five
Please use numeric digits.
Enter your age:
-2
Please enter a positive number.
Enter your age:
30
Your age is 30.

Cuando ejecute este código, se le pedirá su edad hasta que introduzca una válida. Esto asegura que para el momento en que la ejecución abandone el bucle while, la variable edad contendrá un valor válido que no bloqueará el programa más adelante.

Sin embargo, escribir código de validación de entrada para cada llamada a input() en su programa se vuelve rápidamente tedioso. Además, puedes pasar por alto ciertos casos y permitir que la entrada no válida pase a través de tus comprobaciones. En este capítulo, aprenderás a utilizar el módulo de terceros PyInputPlus para la validación de entradas.

Función de validación personalizada a inputCustom() en pyinputplus Argumentos del módulo de terceros pyinputplus El módulo PyInputPlus y su Instalación