1 usuario conectado

Sugerir género musical en Python

Comparte esto

 
Escribe un código Python que tome un género musical ("pop", "rock", "clásica", "jazz", "electrónica") y te sugiera aleatoriamente un artista o banda popular de ese género.

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Sugerir género musical

📋 Copiar código


import random

def sugerir_artista_por_genero(genero_musical):
  """
  Toma un género musical y sugiere aleatoriamente un artista o banda popular de ese género.

  Args:
    genero_musical: El género musical (cadena de texto).

  Returns:
    Un mensaje (cadena de texto) con la sugerencia del artista o banda.
  """
  artistas_por_genero = {
      "pop": ["Rosalía", "Ed Sheeran", "Dua Lipa", "Taylor Swift", "Harry Styles"],
      "rock": ["The Rolling Stones", "Queen", "Arctic Monkeys", "Red Hot Chili Peppers", "Héroes del Silencio"],
      "clásica": ["Ludwig van Beethoven", "Wolfgang Amadeus Mozart", "Johann Sebastian Bach", "Frédéric Chopin", "Clara Schumann"],
      "jazz": ["Miles Davis", "Ella Fitzgerald", "John Coltrane", "Nina Simone", "Louis Armstrong"],
      "electrónica": ["David Guetta", "Calvin Harris", "Kygo", "Peggy Gou", "Fatboy Slim"]
  }

  genero_lower = genero_musical.lower()
  if genero_lower in artistas_por_genero:
    artista_sugerido = random.choice(artistas_por_genero[genero_lower])
    return f"Si te apetece '{genero_musical}', quizás te guste escuchar a: ¡{artista_sugerido}!"
  else:
    return f"No tengo muchas sugerencias para el género '{genero_musical}' en mi lista. ¡Quizás puedas explorar plataformas de música online!"

# Ejemplo de uso
genero1 = "pop"
artista1 = sugerir_artista_por_genero(genero1)
print(artista1)

genero2 = "rock"
artista2 = sugerir_artista_por_genero(genero2)
print(artista2)

genero3 = "blues"
artista3 = sugerir_artista_por_genero(genero3)
print(artista3)

genero4 = "CLASICA"
artista4 = sugerir_artista_por_genero(genero4)
print(artista4)


Explicación del Código:

  1. import random:

    • Importa el módulo random para poder elegir un artista o banda aleatoria de la lista asociada al género musical.
  2. def sugerir_artista_por_genero(genero_musical)::

    • Define una función llamada sugerir_artista_por_genero que toma el género musical (genero_musical) como argumento.
  3. """Docstring...""":

    • La cadena de documentación explica la función, su argumento y lo que devuelve.
  4. artistas_por_genero = {...}:

    • Se crea un diccionario llamado artistas_por_genero. Las claves son géneros musicales (en minúsculas) y los valores son listas de artistas o bandas populares dentro de ese género.
  5. genero_lower = genero_musical.lower():

    • Se convierte el genero_musical a minúsculas para que la búsqueda en el diccionario sea insensible a mayúsculas y minúsculas.
  6. if genero_lower in artistas_por_genero::

    • Se verifica si el genero_lower existe como clave en el diccionario artistas_por_genero.
  7. artista_sugerido = random.choice(artistas_por_genero[genero_lower]):

    • Si el género se encuentra en el diccionario, se elige aleatoriamente un artista o banda de la lista asociada a ese género utilizando random.choice().
  8. return f"Si te apetece '{genero_musical}', quizás te guste escuchar a: ¡{artista_sugerido}!":

    • Se devuelve un mensaje sugiriendo el artista o banda aleatoria encontrada.
  9. else::

    • Si el género no se encuentra en el diccionario.
  10. return f"No tengo muchas sugerencias para el género '{genero_musical}' en mi lista. ¡Quizás puedas explorar plataformas de música online!":

    • Se devuelve un mensaje indicando que no se encontraron sugerencias para ese género en la lista.

     

  11. Ejemplo de uso:

    • Se definen varios géneros musicales y se llama a la función sugerir_artista_por_genero con cada uno para obtener una sugerencia de artista o banda.