El módulo PyInputPlus y su Instalación

PyInputPlus contiene funciones similares a input() para varios tipos de datos: números, fechas, direcciones de correo electrónico, y más. Si el usuario introduce datos no válidos, como una fecha mal formateada o un número que está fuera de un rango previsto, PyInputPlus le pedirá que introduzca los datos tal y como hizo nuestro código en la sección anterior. PyInputPlus también tiene otras características útiles como un límite para el número de intento a los usuarios y un tiempo de espera si los usuarios deben responder dentro de un límite de tiempo.

PyInputPlus no forma parte de la Biblioteca Estándar de Python, por lo que debes instalarlo por separado usando Pip. Para instalar PyInputPlus, ejecute pip install --user pyinputplus desde la línea de comandos. Para comprobar si PyInputPlus se ha instalado correctamente, impórtelo en el shell interactivo:

import pyinputplus

Si no aparece ningún error al importar el módulo, éste se ha instalado correctamente.

PyInputPlus tiene varias funciones para diferentes tipos de entrada:

inputStr() Es como la función input() incorporada pero tiene las características generales de PyInputPlus. También puedes pasarle una función de validación personalizada.

inputNum() Asegura que el usuario introduzca un número y devuelve un int o un float, dependiendo de si el número tiene un punto decimal.

inputChoice() Asegura que el usuario introduzca una de las opciones proporcionadas.

inputMenu() Es similar a inputChoice(), pero proporciona un menú con opciones numeradas o con letras.

inputDatetime() Asegura que el usuario introduzca una fecha y hora.

inputYesNo() Garantiza que el usuario introduzca una respuesta «yes» o «no».

inputBool() Es similar a inputYesNo(), pero toma una respuesta «True» o «False» y devuelve un valor booleano.

inputEmail() Asegura que el usuario introduzca una dirección de correo electrónico válida.

inputFilepath() Garantiza que el usuario introduzca una ruta y un nombre de archivo válidos, y puede comprobar opcionalmente que existe un archivo con ese nombre.

inputPassword() Es como la función incorporada input(), pero muestra los caracteres * mientras el usuario escribe para que las contraseñas, u otra información sensible, no se muestren en la pantalla.

Estas funciones preguntarán automáticamente al usuario mientras introduzca datos no válidos:

>>> import pyinputplus as pyip
>>> response = pyip.inputNum()
five
'five' is not a number.
42
>>> response
42

El código as pyip en la sentencia import nos ahorra escribir pyinputplus cada vez que queremos llamar a una función de PyInputPlus. En su lugar podemos utilizar el nombre pyip, más corto. Si echas un vistazo al ejemplo, verás que a diferencia de input(), estas funciones devuelven un valor int o float: 42 y 3,14 en lugar de las cadenas ’42’ y ‘3,14’.

Al igual que puedes pasar una cadena a input() para proporcionar un prompt, puedes pasar una cadena al argumento de la palabra clave prompt de una función PyInputPlus para mostrar un prompt:

>>> response = input('Enter a number: ')
Enter a number: 42
>>> response
'42'
>>> import pyinputplus as pyip
>>> response = pyip.inputInt(prompt='Enter a number: ')
Enter a number: cat
'cat' is not an integer.
Enter a number: 42
>>> response
42

Utilice la función help() de Python para obtener más información sobre cada una de estas funciones. Por ejemplo, help(pyip.inputChoice) muestra información de ayuda para la función inputChoice(). La documentación completa se puede encontrar en https://pyinputplus.readthedocs.io/.

A diferencia de la función input() incorporada en Python, las funciones de PyInputPlus tienen varias características adicionales para la validación de entradas, como se muestra en la siguiente sección.

Deja una respuesta