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.