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.
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:
re de Python, que proporciona soporte para expresiones regulares.\d) y puntos (\.).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.”
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.
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.
“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…
Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…
Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…
Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…
En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…
Hoy, 2 de mayo de 2026, Analytics Lane cumple exactamente ocho años. Todo empezó con…
This website uses cookies.