.
Solución al Ejercicio: Recomendar película
📋 Copiar código
def recomendar_pelicula_sabado_tarde(nombre_pelicula):
"""
Toma el nombre de una película y dice si la recomendaría para ver un sábado por la tarde
basándose en una lista predefinida de películas adecuadas.
Args:
nombre_pelicula: El nombre de la película (cadena de texto).
Returns:
Un mensaje (cadena de texto) indicando si la película se recomienda o no.
"""
peliculas_recomendadas = [
"Los Vengadores",
"Regreso al Futuro",
"La Princesa Prometida",
"Paddington 2",
"El Señor de los Anillos: La Comunidad del Anillo",
"Indiana Jones: En busca del arca perdida",
"Mi Vecino Totoro",
"Spirited Away (El viaje de Chihiro)"
]
if nombre_pelicula in peliculas_recomendadas:
return f"¡Sí! '{nombre_pelicula}' es una excelente opción para disfrutar un sábado por la tarde."
else:
return f"'{nombre_pelicula}' no está en mi lista de recomendaciones especiales para un sábado por la tarde, ¡pero igual disfrútala si te apetece!"
# Ejemplo de uso
pelicula1 = "Regreso al Futuro"
recomendacion1 = recomendar_pelicula_sabado_tarde(pelicula1)
print(recomendacion1)
pelicula2 = "El Padrino"
recomendacion2 = recomendar_pelicula_sabado_tarde(pelicula2)
print(recomendacion2)
pelicula3 = "Mi Vecino Totoro"
recomendacion3 = recomendar_pelicula_sabado_tarde(pelicula3)
print(recomendacion3)
Explicación del Código:
-
import re
:
- Importa el módulo
re
(regular expression), que proporciona soporte para trabajar con
expresiones regulares. Las expresiones regulares son patrones que se
utilizan para buscar y manipular texto de manera eficiente.
-
from collections import Counter
:
- Importa la clase
Counter
del
módulo collections
. Counter
es una subclase de
diccionario que está especialmente diseñada para contar la frecuencia de
elementos en una lista o iterable.
-
def
contar_frecuencia_palabras(texto):
:
- Define una función llamada
contar_frecuencia_palabras
que toma una cadena de texto (texto
)
como argumento.
-
"""Docstring..."""
:
- Una cadena de documentación que explica
la función, sus argumentos y lo que devuelve.
-
texto = texto.lower()
:
- Convierte toda la cadena de texto a
minúsculas utilizando el método
lower()
. Esto asegura que
las palabras como "Esta" y "esta" se consideren la misma palabra al
contar la frecuencia.
-
palabras = re.findall(r'\b\w+\b',
texto)
:
- Utiliza la función
re.findall()
para encontrar todas las palabras en el texto.
r'\b\w+\b'
es la expresión
regular:
\b
: Coincide con un
límite de palabra (la posición entre un carácter de palabra y un
carácter que no es de palabra). Esto ayuda a asegurar que solo se
capturen palabras completas.
\w+
: Coincide con uno o
más caracteres de palabra (letras, números y guion bajo).
- El resultado es una lista llamada
palabras
que contiene todas las palabras encontradas en el texto.
-
frecuencia = Counter(palabras)
:
- Crea un objeto
Counter
llamado frecuencia
a partir de la lista palabras
.
Counter
automáticamente cuenta la frecuencia de cada
elemento único en la lista. El resultado es un objeto similar a un
diccionario donde las claves son las palabras y los valores son sus
recuentos.
-
return dict(frecuencia)
:
- Convierte el objeto
Counter
frecuencia
a un diccionario estándar de Python utilizando
dict()
. La función devuelve este diccionario.
-
Ejemplo de uso:
- Se definen dos cadenas de texto de
ejemplo (
mi_texto
y otro_texto
).
- Se llama a la función
contar_frecuencia_palabras
con cada texto y el resultado se
almacena en las variables frecuencias
y
otras_frecuencias
.
- Finalmente, se imprimen el texto
original y el diccionario de frecuencia de palabras para cada caso.
.