Python

Comprobar que una cadena sólo contiene números en Python

En muchas aplicaciones se puede recibir una cadena de texto que solamente debe contener valor numérico. Esto es, una cadena que solamente debería contener números y, a lo sumo, un punto como separador decimal. Si un usuario introduce este dato, es necesario validar el contenido de la cadena antes de poder emplearla dentro del código. En esta entrada, se verá cómo comprobar que una cadena sólo contiene números en Python mediante el uso de expresiones regulares, creando una función que se puede usar para la tarea.

Uso de expresiones regulares para verificar que una cadena sólo contiene números en Python

Validar que una cadena de texto sólo contiene números es algo que se puede hacer fácilmente mediante el uso de expresiones regulares. Las cuales permiten definir patrones de búsqueda complejos en cadenas de texto.

Para verificar si una cadena contiene sólo números en Python, podemos seguir estos pasos:

  1. Importar el módulo re de Python, que proporciona soporte para expresiones regulares.
  2. Definir una expresión regular que describa el patrón que debe contener la cadena de texto. En este caso, se desea buscar sólo números (\d) y puntos (\.).
  3. Utilizar la función re.match() para verificar si la cadena cumple con el patrón especificado.

A continuación, se muestra un ejemplo de cómo se puede hacer esto en Python:

import re

# Cadena de texto a verificar
cadena = '123.45'

# Expresión regular para buscar solo números y puntos
patron = '^[0-9.]+$'

# Verificar si la cadena contiene solo números y puntos
if re.match(patron, cadena):
    print('La cadena contiene solo números y puntos.')
else:
    print('La cadena contiene caracteres no numéricos o un formato incorrecto.')

En este ejemplo, la cadena '123.45' cumple con el patrón especificado y, por lo tanto, se imprimirá “La cadena contiene sólo números y puntos.”. Sin embargo, si la cadena no cumple con el patrón, se imprimirá “La cadena contiene caracteres no numéricos o un formato incorrecto.”

Creación de una función para validar que una cadena sólo contiene números en Python

El código del ejemplo anterior se puede implementar en una función para facilitar su uso en cualquier programa. Una posible implementación es la que se muestra a continuación.

import re

def contiene_numeros(cadena):
    """
    Verifica si una cadena de texto contiene solo números y puntos.

    Parámetros:
    cadena : str
        La cadena de texto a verificar.

    Devuelve:
    bool
        True si la cadena contiene solo números y puntos, False en caso contrario.
    """
    patron = '^[0-9.]+$'
    return bool(re.match(patron, cadena))

Lo que se puede evaluar con múltiples ejemplos.

ejemplos = [
    "123.45",
    "3.14159",
    "42",
    "abc123",
    "1234.56",
    "3",
]

# Iterar sobre los ejemplos y verificar si son números o no
for ejemplo in ejemplos:
    if contiene_numeros(ejemplo):
        print(f'"{ejemplo}" es un número válido.')
    else:
        print(f'"{ejemplo}" no es un número válido.')
"123.45" es un número válido.
"3.14159" es un número válido.
"42" es un número válido.
"abc123" no es un número válido.
"1234.56" es un número válido.
"3" es un número válido.

Ahora, esta función se puede incluir en cualquier programa para verificar si los valores introducidos por el usuario son válidos o no.

Conclusiones

Comprobar si unas cadenas de texto contienen solamente valores numéricos es una tarea habitual. Mediante el uso de expresiones regulares se puede realizar esta validación de una forma rápida y eficiente. Proceso que además se puede factorizar en una función y hacer de este modo el código completamente reutilizable en diferentes proyectos.

Imagen de Alicja en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

2 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

4 días ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

1 semana ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring

En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…

2 semanas ago

¡Analytics Lane cumple ocho años!

Hoy, 2 de mayo de 2026, Analytics Lane cumple exactamente ocho años. Todo empezó con…

2 semanas ago

This website uses cookies.