2 usuarios conectados

Encontrar la palabra más larga. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada encontrar_palabra_mas_larga que tome una cadena de texto como entrada y devuelva la palabra más larga que se encuentre en esa cadena. Si hay varias palabras con la misma longitud máxima, puedes devolver cualquiera de ellas. Considera que las palabras están separadas por espacios y signos de puntuación (coma, punto, signo de exclamación, signo de interrogación).

Piensa en cómo puedes dividir la cadena en palabras y luego encontrar la palabra con la mayor longitud.

 

Más ejercicios





Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Encontrar la palabra más larga

📋 Copiar código


import re

def encontrar_palabra_mas_larga(texto):
  """
  Encuentra la palabra más larga en una cadena de texto.

  Args:
    texto: La cadena de texto a analizar.

  Returns:
    La palabra más larga encontrada en la cadena (en minúsculas).
  """
  palabras = re.findall(r'\b\w+\b', texto.lower())
  if not palabras:
    return ""
  palabra_mas_larga = ""
  for palabra in palabras:
    if len(palabra) > len(palabra_mas_larga):
      palabra_mas_larga = palabra
  return palabra_mas_larga

# Ejemplo de uso:
texto1 = "Esta es una cadena de texto con palabras."
palabra_larga1 = encontrar_palabra_mas_larga(texto1)
print(f"La palabra más larga en '{texto1}' es: '{palabra_larga1}'")

texto2 = "Hola, ¿cómo estás?"
palabra_larga2 = encontrar_palabra_mas_larga(texto2)
print(f"La palabra más larga en '{texto2}' es: '{palabra_larga2}'")

texto3 = "Programación en Python es genial!"
palabra_larga3 = encontrar_palabra_mas_larga(texto3)
print(f"La palabra más larga en '{texto3}' es: '{palabra_larga3}'")

texto4 = "Una dos tres cuatro cinco"
palabra_larga4 = encontrar_palabra_mas_larga(texto4)
print(f"La palabra más larga en '{texto4}' es: '{palabra_larga4}'")
 

Explicación de la solución:

  1. import re: Importa el módulo re para trabajar con expresiones regulares, lo que facilita la extracción de palabras ignorando la puntuación.
  2. def encontrar_palabra_mas_larga(texto):: Define la función que toma el texto como entrada.
  3. palabras = re.findall(r'\b\w+\b', texto.lower()): Utiliza re.findall() para encontrar todas las palabras en el texto.
    • r'\b\w+\b' es una expresión regular que busca:
      • \b: Un límite de palabra (para no tomar partes de palabras).
      • \w+: Uno o más caracteres alfanuméricos (letras, números y guion bajo).
      • \b: Otro límite de palabra.
    • .lower() convierte el texto a minúsculas para que la comparación de longitudes no dependa de las mayúsculas.
  4. if not palabras:: Verifica si se encontraron palabras en el texto. Si no hay palabras, devuelve una cadena vacía.
  5. palabra_mas_larga = "": Inicializa una variable para almacenar la palabra más larga encontrada hasta el momento.
  6. for palabra in palabras:: Itera a través de cada palabra en la lista de palabras encontradas.
  7. if len(palabra) > len(palabra_mas_larga):: Compara la longitud de la palabra actual con la longitud de la palabra_mas_larga encontrada hasta ahora.
  8. palabra_mas_larga = palabra: Si la palabra actual es más larga, se actualiza palabra_mas_larga.
  9. return palabra_mas_larga: Después de revisar todas las palabras, la función devuelve la palabra_mas_larga encontrada.

El ejemplo de uso muestra cómo llamar a la función con diferentes cadenas y cómo se imprime la palabra más larga encontrada.