3 usuarios conectados

Recomendar película en Python

Comparte esto

 
Escribe un código Python que tome el nombre de una película y te diga si la recomendaría para ver un sábado por la tarde. La recomendación se basará en una lista predefinida de películas "adecuadas" para este momento.

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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.
  2. 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.
  3. def contar_frecuencia_palabras(texto)::

    • Define una función llamada contar_frecuencia_palabras que toma una cadena de texto (texto) como argumento.
  4. """Docstring...""":

    • Una cadena de documentación que explica la función, sus argumentos y lo que devuelve.
  5. 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.
  6. 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.
  7. 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.
  8. return dict(frecuencia):

    • Convierte el objeto Counter frecuencia a un diccionario estándar de Python utilizando dict(). La función devuelve este diccionario.

     

  9. 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.

.