1 usuario conectado

Contiene solo letras en español. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada normalizar_texto_es que tome una cadena de texto en español como entrada y devuelva una nueva cadena con todos los caracteres en minúsculas y sin acentos.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares.

  2. 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.