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

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

14 horas ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

6 días ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

1 semana ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

Augurios deportivos y portadas malditas, o cuando The Economist predice mejor al revés – El bestiario de los indicadores económicos absurdos (parte 3)

Cerramos la serie internacional con la categoría más estrambótica de todas: indicadores que predicen el…

2 semanas ago

El Binning en Credit Scoring: El Arte de Discretizar Variables

Si el WOE y el IV son la base matemática del credit scoring, el binning…

2 semanas ago

This website uses cookies.