Comprobar si una cadena es un número entero en Python

Muhammad Waiz Khan 30 enero 2023
  1. Comprobar si una cadena es entera en Python usando el método str.isdigit()
  2. Comprobar si una cadena es un entero en Python usando el manejo de excepciones try ... except
  3. Comprobar si una cadena es un entero en Python usando una expresión regular
Comprobar si una cadena es un número entero en Python

Este tutorial explicará cómo comprobar si una cadena es un entero o no en Python. Por cadena que es un entero, queremos decir que el valor almacenado en la cadena representa un entero. Puede haber múltiples métodos para comprobar esto, y discutiremos esos métodos con ejemplos de código en este tutorial.

Comprobar si una cadena es entera en Python usando el método str.isdigit()

La forma más eficiente de comprobar si una cadena es un entero en Python es utilizar el método str.isdigit(), ya que es el que menos tiempo tarda en ejecutarse.

El método str.isdigit() devuelve True si la cadena representa un entero, en caso contrario False. El siguiente ejemplo de código muestra cómo podemos utilizarlo.

def if_integer(string):

    if string[0] == ("-", "+"):
        return string[1:].isdigit()

    else:
        return string.isdigit()


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Producción :

True
True
False

El ejemplo anterior también tiene en cuenta si el signo del entero, + o -, también existe en la cadena. Si la primera cadena es + o -, comprueba si el resto de la cadena es un entero o no.

Comprobar si una cadena es un entero en Python usando el manejo de excepciones try ... except

Otro método es utilizar el manejo de excepciones try ... except en la función int(). Si la cadena es un entero, devolverá True y en caso contrario False. El siguiente ejemplo de código muestra cómo podemos implementar este método.

def if_integer(string):
    try:
        int(string)
        return True
    except ValueError:
        return False


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Producción :

True
True
False

Comprobar si una cadena es un entero en Python usando una expresión regular

Un enfoque diferente e interesante que podemos utilizar es la expresión regular. La expresión regular para representar un entero será [+-]?\d+$, donde [+-]? significa que los signos +- son opcionales, \d+ significa que debe haber uno o más dígitos en la cadena y $ es el final de la cadena.

Código de ejemplo:

import re


def if_integer(string):

    reg_exp = "[-+]?\d+$"
    return re.match(reg_exp, string) is not None


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

Producción :

True
True
False

Artículo relacionado - Python String

Artículo relacionado - Python Integer