3 usuarios conectados

Enfatizar palabras. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada contiene_todo_alfabeto_es que tome una cadena de texto como entrada y devuelva True si la cadena contiene al menos una vez cada letra del alfabeto español (a-z y ñ), sin importar la capitalización, y False en caso contrario.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Enfatizar palabras

📋 Copiar código


import re

def enfatizar_palabras(texto, palabras_a_enfatizar):
  """
  Enfatiza palabras específicas en un texto utilizando formato Markdown (negrita).

  Args:
    texto: La cadena de texto de entrada.
    palabras_a_enfatizar: Una lista de palabras a enfatizar.

  Returns:
    Una nueva cadena con las palabras enfatizadas en Markdown.
  """
  texto_modificado = texto
  for palabra in palabras_a_enfatizar:
    patron = r"(?i)\b" + re.escape(palabra) + r"\b"
    reemplazo = r"**" + palabra + r"**"
    texto_modificado = re.sub(patron, reemplazo, texto_modificado)
  return texto_modificado

# Ejemplos de uso
texto1 = "El perro ladra mucho. El PERRO es ruidoso."
palabras1 = ["perro"]
resultado1 = enfatizar_palabras(texto1, palabras1)
print(f"'{texto1}' con '{palabras1}' enfatizadas: '{resultado1}'")

texto2 = "La casa es grande y la CASA azul."
palabras2 = ["casa", "azul"]
resultado2 = enfatizar_palabras(texto2, palabras2)
print(f"'{texto2}' con '{palabras2}' enfatizadas: '{resultado2}'")

texto3 = "Un ejemplo de ejemplo muy claro."
palabras3 = ["ejemplo"]
resultado3 = enfatizar_palabras(texto3, palabras3)
print(f"'{texto3}' con '{palabras3}' enfatizadas: '{resultado3}'")

texto4 = "No hay palabras especiales aquí."
palabras4 = ["especiales"]
resultado4 = enfatizar_palabras(texto4, palabras4)
print(f"'{texto4}' con '{palabras4}' enfatizadas: '{resultado4}'")

texto5 = ""
palabras5 = ["algo"]
resultado5 = enfatizar_palabras(texto5, palabras5)
print(f"'{texto5}' con '{palabras5}' enfatizadas: '{resultado5}'")

texto6 = "El sol es amarillo."
palabras6 = ["el", "sol"]
resultado6 = enfatizar_palabras(texto6, palabras6)
print(f"'{texto6}' con '{palabras6}' enfatizadas: '{resultado6}'")

Explicación del Código:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. def enfatizar_palabras(texto, palabras_a_enfatizar)::

    • Define una función llamada enfatizar_palabras que toma dos argumentos:
      • texto: La cadena de texto en la que se van a enfatizar las palabras.
      • palabras_a_enfatizar: Una lista de palabras que deben ser enfatizadas.
  3. texto_modificado = texto:

    • Inicializa una variable texto_modificado con el valor del texto original. Esto se hará para ir modificando la cadena en cada iteración.
  4. for palabra in palabras_a_enfatizar::

    • Itera a través de cada palabra en la lista palabras_a_enfatizar.
  5. patron = r"(?i)\b" + re.escape(palabra) + r"\b":

    • Crea un patrón de búsqueda de expresión regular para la palabra actual:
      • (?i): Indica que la búsqueda no debe distinguir entre mayúsculas y minúsculas.
      • \b: Representa un límite de palabra, asegurando que solo se encuentre la palabra completa y no parte de otra palabra (por ejemplo, "perro" pero no "perrito").
      • re.escape(palabra): Escapa cualquier carácter especial que pueda haber en la palabra para que se interprete literalmente en la expresión regular.
  6. reemplazo = r"**" + palabra + r"**":

    • Define la cadena de reemplazo. Es la palabra original envuelta en doble asterisco (**) para darle formato de negrita en Markdown.
  7. texto_modificado = re.sub(patron, reemplazo, texto_modificado):

    • Utiliza re.sub() para buscar todas las ocurrencias del patron en el texto_modificado (ignorando la capitalización) y reemplazarlas con la cadena de reemplazo. El resultado se asigna de nuevo a texto_modificado, actualizando la cadena con las palabras enfatizadas.
  8. return texto_modificado:

    • Después de iterar a través de todas las palabras en palabras_a_enfatizar, la función devuelve la cadena texto_modificado con las palabras especificadas enfatizadas en formato Markdown.

Ejemplos de Uso:

Los ejemplos muestran cómo la función enfatiza las palabras proporcionadas en la lista dentro de las cadenas de texto, sin importar su capitalización en el texto original. Las palabras enfatizadas aparecen envueltas en **.