Módulo PyInputPlus en Python

PyInputPlus es un módulo de Python que se utiliza para tomar entradas con funciones de validación adicionales. PyInputPlus seguirá pidiendo texto al usuario hasta que ingrese una entrada válida.

Instalación:

Instale el módulo a través del comando pip :

pip install PyInputPlus

Estas son las funciones utilizadas para tomar varios tipos de entrada:

  • inputNum() : Acepta un valor numérico. Toma parámetros adicionales ‘min’, ‘max’, ‘greaterThan’ y ‘lessThan’ para los límites. Devuelve un int o float.
  • inputStr() : Acepta un valor de string. Proporciona funciones como ‘blockRegexes’, ‘timeout’, ‘limit’, etc.
  • inputInt() : Acepta un valor entero. Esto también toma los parámetros adicionales ‘min’, ‘max’, ‘greaterThan’ y ‘lessThan’ para los límites. Devuelve un int.
  • inputFloat() : acepta un valor numérico de coma flotante. También toma parámetros adicionales ‘min’, ‘max’, ‘greaterThan’ y ‘lessThan’. Devuelve un flotador.
  • inputBool() : Acepta un valor booleano. La entrada puede ser cualquier forma que no distinga entre mayúsculas y minúsculas de ‘verdadero’/’falso’ y ‘V’/’F’. Devuelve un valor booleano.
  • inputChoice() : toma una lista de strings y acepta una de ellas como entrada.
  • inputMenu() : similar a inputChoice(), pero las opciones se presentan como elementos en un menú. Los elementos del menú se pueden marcar con letras o números, usando los parámetros ‘con letras’ y ‘numerados’.
  • inputDate()  : Acepta una fecha en formato strftime. Necesitamos pasar este formato al parámetro ‘formatos’. Devuelve un objeto datetime.date.
  • inputTime() : Acepta una hora en formato strftime. Devuelve un objeto datetime.time.
  • inputDatetime() : Acepta una fecha y hora en formato strftime. Devuelve un objeto datetime.datetime.
  • inputYesNo() : acepta ‘sí’/’no’ o ‘y’/’n’ en formato que no distingue entre mayúsculas y minúsculas. Devuelve ‘sí’ o ‘no’.

Algunos ejemplos de usos:

1. Entrada de string:

La función inputStr() se usa para tomar entradas de string. Podemos configurar el parámetro de solicitud para definir una solicitud antes de tomar la entrada. Es similar al parámetro de solicitud de la función incorporada input() . Podemos permitir valores en blanco como entrada válida configurando el parámetro en blanco como True . Ciertas entradas se pueden bloquear (es decir, estos valores se invalidan) configurando el valor del parámetro blockRegexes como el patrón de expresiones regulares que queremos invalidar.

Python3

import pyinputplus as pyip
  
# string input with
# additional parameters
inp = pyip.inputStr(prompt="Enter a string... ", 
                    blank=True, blockRegexes = 'aeiou')
  
print(inp)

Producción :

Enter a string... Hello
This response is invalid.
Enter a string... GFG
GFG

2. Entrada de número entero:

La función inputInt() se usa para tomar entradas enteras. Si se pasa cualquier entrada que no sea un número entero, la función vuelve a intentar hasta que se proporcione una entrada válida, se agote el tiempo o se supere el número máximo de intentos. El parámetro predeterminado se usa para establecer el valor predeterminado si se agota el tiempo o se excede el número de intentos. El parámetro de límite se usa para especificar el número máximo de intentos que tiene el usuario para ingresar una entrada válida, después de lo cual se devuelve el valor predeterminado , si se especifica, o se genera una RetryLimitException de lo contrario.

Python3

import pyinputplus as pyip
  
# integer input with
# limited number of tries
inp = pyip.inputInt(prompt = "Enter an Integer... ", 
                    default = 0, limit = 3)
  
print(inp)

Producción :

Enter an Integer... hello
'hello' is not an integer.
Enter an Integer... abc
'abc' is not an integer.
Enter an Integer... 
Blank values are not allowed.
0

El parámetro de tiempo de espera se usa para establecer la cantidad de segundos desde la primera solicitud después de lo cual se devuelve el valor predeterminado, si se especifica, o se genera una TimeoutException de lo contrario.

Python3

import pyinputplus as pyip
  
# integer input with
# limited time
inp = pyip.inputInt(prompt = "Enter an Integer... ", 
                    default = 0, timeout = 2)
  
print(inp)

Producción :

Enter an Integer... 4
0

Los parámetros min y max se pueden usar para establecer límites inferiores y superiores para la entrada. De manera similar, los parámetros greatThan y lessThan se utilizan para establecer los límites externos.

Python3

import pyinputplus as pyip
  
# integer input with
# specific bounds
inp = pyip.inputInt(prompt = "Enter an Integer... ",
                    min = 4, lessThan = 9 )
  
print(inp)

Producción :

Enter an Integer... 3
Number must be at minimum 4.
Enter an Integer... 12
Number must be less than 9.
Enter an Integer... 8
8

3. Entrada de menú:

La función inputMenu() se usa para mostrar un menú de opciones válidas para las entradas. Los parámetros con letras o numerados se pueden establecer en Verdadero para marcar los elementos como A,B,C… o 1,2,3… respectivamente. La marca predeterminada es ‘ * ‘.

Python3

import pyinputplus as pyip
  
# menu item input
inp = pyip.inputMenu(['apple', 'banana', 'mango'])
  
print(inp)

Producción :

Please select one of the following:
* apple
* banana
* mango
peach
'peach' is not a valid choice.
Please select one of the following:
* apple
* banana
* mango
mANgo
mango

4. Entrada de fecha y hora: 

La función inputDatetime() acepta una fecha y hora en uno de los formatos strftime especificados en una lista o tupla pasada al parámetro  de formatos .

Python3

import pyinputplus as pyip
  
# date and time input
inp = pyip.inputDatetime('Enter date and time... ', 
                         formats = ('%m/%d/%y %H:%M:%S',
                                    '%m.%d.%Y %H:%M:%S') )
  
print(inp)

Producción :

Enter date and time... 3.4.18 4:32:16
'3.4.18 4:32:16' is not a valid date and time.
Enter date and time... 3/4/18 4:32:16
2018-03-04 04:32:16

Publicación traducida automáticamente

Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *