Comprobar si la entrada es un número entero en Python

Manav Narula 30 enero 2023
  1. Utilice la función int() para comprobar si la entrada es un número entero en Python
  2. Utilice el método isnumeric() para comprobar si la entrada es un número entero o no
  3. Use las expresiones regulares para verificar si la entrada es un número entero en Python
Comprobar si la entrada es un número entero en Python

En el mundo de la programación, trabajamos con mucha frecuencia con la entrada del usuario. Python tiene la función input() disponible, que permite al usuario ingresar la entrada deseada. A veces, es posible que deseemos la entrada de un tipo específico.

Sin embargo, esta función convierte la entrada del usuario en una cadena antes de compilarla con el programa. Por lo tanto, no es simple usar los métodos tradicionales para verificar tipos específicos con la entrada del usuario, y tenemos que verificar si la cadena contiene números o no esencialmente.

En este tutorial, discutiremos cómo verificar si la entrada ingresada por el usuario es un tipo entero o no.

Utilice la función int() para comprobar si la entrada es un número entero en Python

La función int() puede convertir un valor entero de cadena dado en un tipo entero. Genera un error si el valor deseado no es un número entero y no se puede convertir. Podemos usar este método para verificar si la cadena del usuario es un número entero o no, como se muestra a continuación.

user_input = input("Enter the input ")

try:
    int(user_input)
    it_is = True
except ValueError:
    it_is = False

print(it_is)

Producción :

Enter the input 15
True

Tenga en cuenta el uso del bloque try...except en este método. Se usa con mucha frecuencia cuando se manejan excepciones en Python.

Utilice el método isnumeric() para comprobar si la entrada es un número entero o no

El método isnumeric() de la cadena devuelve True si la cadena solo contiene números. Sin embargo, vale la pena señalar que falla con valores negativos. Esto se debe a que devuelve automáticamente False cuando encuentra el signo - en enteros negativos.

El siguiente código muestra cómo podemos usar esta función para verificar si una cadena contiene números enteros en Python.

user_input = input("Enter the input ")

print(user_input.isnumeric())

Producción :

Enter the input 10
True

También podemos usar la función isdigit() en lugar de isnumeric(); también tiene las mismas limitaciones que este método.

Use las expresiones regulares para verificar si la entrada es un número entero en Python

También podemos usar las expresiones regulares para crear un patrón que devuelva True siempre que encuentre números enteros en una cadena. También podemos modificar el patrón para asegurarnos de que funcione con valores negativos. Por ejemplo,

import re

user_input = input("Enter the input ")

num_format = re.compile(r"^\-?[1-9][0-9]*$")
it_is = re.match(num_format, user_input)

if it_is:
    print("True")
else:
    print("False")

Producción :

Enter the input -15
True

A continuación se muestra la explicación del patrón de expresión regular - ^\-?[1-9][0-9]*$.

  • ^ es el comienzo de la cadena
  • \-? indica que este número puede ser negativo o positivo.
  • [1-9] es el primer dígito del número. Debe ser un número entre 1 y 9, pero no 0.
  • [0-9]* indica los siguientes dígitos. El número de dígitos puede ser cualquiera, incluido 0.
  • $ es el final de la cadena.
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python String

Artículo relacionado - Python Input