Solución al Ejercicio: Contiene solo letras en español
📋 Copiar código
import re
def contiene_solo_letras_es(texto):
"""
Valida si una cadena de texto contiene solo letras del alfabeto español y espacios.
Args:
texto: La cadena de texto a validar.
Returns:
True si la cadena solo contiene letras españolas y espacios, False en caso contrario.
"""
patron = re.compile(r'^[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ\s]+$')
return bool(patron.match(texto))
# Ejemplos de uso
texto1 = "Hola Mundo"
resultado1 = contiene_solo_letras_es(texto1)
print(f"'{texto1}' contiene solo letras españolas y espacios: {resultado1}")
texto2 = "Mañana iré al centro"
resultado2 = contiene_solo_letras_es(texto2)
print(f"'{texto2}' contiene solo letras españolas y espacios: {resultado2}")
texto3 = "ÁÉÍÓÚÜÑáéíóúüñ"
resultado3 = contiene_solo_letras_es(texto3)
print(f"'{texto3}' contiene solo letras españolas y espacios: {resultado3}")
texto4 = "Texto con números 123"
resultado4 = contiene_solo_letras_es(texto4)
print(f"'{texto4}' contiene solo letras españolas y espacios: {resultado4}")
texto5 = "Texto con símbolos !?"
resultado5 = contiene_solo_letras_es(texto5)
print(f"'{texto5}' contiene solo letras españolas y espacios: {resultado5}")
texto6 = ""
resultado6 = contiene_solo_letras_es(texto6)
print(f"'' contiene solo letras españolas y espacios: {resultado6}")
texto7 = "Palabra con guion -"
resultado7 = contiene_solo_letras_es(texto7)
print(f"'{texto7}' contiene solo letras españolas y espacios: {resultado7}")
Explicación del Código:
-
Importa el módulo re
:
Se utiliza para trabajar con expresiones regulares.
-
Función
contiene_solo_letras_es(texto)
:
patron = re.compile(r'^[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ\s]+$')
:
Compila una expresión regular para verificar el contenido de la cadena:
^
: Coincide con el
inicio de la cadena.
[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ\s]
:
Define un conjunto de caracteres permitidos:
a-z
: Letras
minúsculas del alfabeto inglés.
A-Z
: Letras
mayúsculas del alfabeto inglés.
áéíóúüñÁÉÍÓÚÜÑ
:
Vocales acentuadas y la 'ñ' en minúscula y mayúscula.
\s
: Espacio en
blanco.
+
: Coincide con uno o
más de los caracteres definidos en el conjunto.
$
: Coincide con el
final de la cadena.
- En resumen, este patrón verifica si
toda la cadena está compuesta únicamente por las letras del alfabeto
español (con y sin acentos, incluyendo la 'ñ') y espacios.
return bool(patron.match(texto))
:
Intenta hacer coincidir el patrón con la cadena texto
desde
el principio.
patron.match(texto)
:
Si la cadena coincide completamente con el patrón, devuelve un
objeto de coincidencia; de lo contrario, devuelve None
.
bool(...)
: Convierte el
resultado de patron.match(texto)
a un booleano. Un
objeto de coincidencia se evalúa como True
, y
None
se evalúa como False
.
Ejemplos de Uso:
Los ejemplos muestran cómo la función verifica
si diferentes cadenas contienen solo letras del alfabeto español y espacios. Se
incluyen casos con mayúsculas, minúsculas, acentos, la 'ñ', espacios, números y
símbolos.