Files
1ereNSI/representation_construits/evaluation/TP01_Spotify_aide.md
Florian Mathieu 1290ccf453 ajout exercices, corrections diverses, glossaire
- Ajout des 10 TPs d'évaluation (sans PDF)
- Création GLOSSAIRE.md et AMELIORATIONS.md
- Corrections f-strings, eval(), sommaires

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:37:26 +01:00

3.3 KiB

Aide - TP01 Spotify

Rappels utiles

Acceder aux elements d'un dictionnaire

chanson = {"titre": "Blinding Lights", "artiste": "The Weeknd", "duree": 203}
print(chanson["titre"])  # Blinding Lights
print(chanson.get("note", 0))  # 0 (valeur par defaut si cle absente)

Convertir des secondes en minutes:secondes

duree = 203  # secondes
minutes = duree // 60  # Division entiere
secondes = duree % 60  # Reste (modulo)
print(minutes, ":", secondes)  # 3 : 23

Parcourir une liste de dictionnaires

for chanson in catalogue:
    print(chanson["titre"])

Exercice 1

1.1 - Affichage formate

  • Utilisez print() avec des virgules : print("Titre:", titre)
  • Pour le formatage minutes:secondes, pensez a // et %
  • Concatenation avec + si besoin : str(minutes) + ":" + str(secondes)

1.2 - Statistiques

  • Initialisez un dictionnaire vide pour le resultat
  • Parcourez la liste avec une boucle for pour calculer la somme
  • round(valeur) arrondit a l'entier
total = 0
for chanson in catalogue:
    total = total + chanson["duree"]

1.3 - Artistes uniques

  • Parcourez et ajoutez dans une liste si pas deja present
  • sorted(liste) trie par ordre alphabetique
artistes = []
for chanson in catalogue:
    if chanson["artiste"] not in artistes:
        artistes.append(chanson["artiste"])
artistes.sort()

Exercice 2

2.1 - Recherche

  • Utilisez if critere == "artiste": pour differencier les cas
  • Pour la recherche insensible a la casse : "star".lower() in titre.lower()
  • Renvoyez une nouvelle liste (ne modifiez pas l'originale)

2.2 - Ajouter/Retirer

  • Pour verifier si un titre existe deja :
for chanson in playlist:
    if chanson["titre"] == nouveau_titre:
        return False  # Deja present
  • Pour retirer, parcourez avec l'indice :
for i in range(len(playlist)):
    if playlist[i]["titre"] == titre:
        playlist.pop(i)
        return True

2.3 - Top artistes

  • Creez d'abord un dictionnaire {artiste: total_streams}
  • Parcourez le catalogue et cumulez les streams
  • Triez avec sorted(dico.items(), key=lambda x: x[1], reverse=True)
compteur = {}
for chanson in catalogue:
    artiste = chanson["artiste"]
    if artiste not in compteur:
        compteur[artiste] = 0
    compteur[artiste] = compteur[artiste] + chanson["streams"]

Exercice 3 (Bonus)

3.1 - Filtrage

# Filtrer les chansons courtes
resultat = []
for chanson in catalogue:
    if chanson["duree"] < 200:
        resultat.append(chanson["titre"])

3.2 - Recommandations

  1. D'abord, recuperez les artistes de la playlist utilisateur
  2. Ensuite, filtrez le catalogue pour ces artistes
  3. Excluez les chansons deja dans la playlist
  4. Triez par streams decroissant

3.3 - Playlist automatique

  • Triez d'abord le catalogue par streams decroissant
  • Parcourez et ajoutez si duree_actuelle + chanson["duree"] <= duree_cible + tolerance
  • Arretez quand duree_actuelle >= duree_cible - tolerance

Pieges a eviter

  1. Ne pas modifier la liste originale lors des recherches
  2. Attention aux comparaisons de chaines : utilisez .lower() pour ignorer la casse
  3. Division par zero : verifiez que la liste n'est pas vide avant de calculer une moyenne
  4. Arrondi : round(x, 2) pour 2 decimales, round(x) pour un entier