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:
import re:
Importa el módulo re para trabajar con expresiones regulares,
lo que facilita la extracción de palabras ignorando la puntuación.
def
encontrar_palabra_mas_larga(texto):: Define la función que
toma el texto como entrada.
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.
if not palabras::
Verifica si se encontraron palabras en el texto. Si no hay palabras,
devuelve una cadena vacía.
palabra_mas_larga = "":
Inicializa una variable para almacenar la palabra más larga encontrada hasta
el momento.
for palabra in palabras::
Itera a través de cada palabra en la lista de palabras
encontradas.
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.
palabra_mas_larga = palabra:
Si la palabra actual es más larga, se actualiza
palabra_mas_larga.
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.