Retour à la page d'accueilNSI · Première (spé maths) · Changer de matière
Commencer gratuitement
Cours

Exercices: tables, CSV, tri et fusion

Entraîne-toi★☆☆
Voici le contenu d'un fichier CSV : a) Quel est le séparateur de champs ? Quels sont les descripteurs ? b) Combien d'enregistrements contient la table ? c) Représenter…

Voici le contenu d'un fichier CSV :

nom,ville,age

Durand,Lille,17

Petit,Nice,16

Roux,Lille,16
  1. a) Quel est le séparateur de champs ? Quels sont les descripteurs ?
  1. b) Combien d'enregistrements contient la table ?
  1. c) Représenter cette table sous forme d'une liste de dictionnaires en Python.
Résoudre
Entraîne-toi★☆☆
On dispose de la table t, liste de dictionnaires, avec les champs nom, ville, age de l'exercice précédent. Chaque enregistrement est de la forme {"nom": "Martin",…

On dispose de la table t, liste de dictionnaires, avec les champs nom, ville, age de l'exercice précédent. Chaque enregistrement est de la forme {"nom": "Martin", "ville": "Lille", "age": 16} : le champ age est un entier.

  1. a) Écrire une compréhension qui renvoie la liste des enregistrements dont la ville est "Lille".
  1. b) Écrire une compréhension qui renvoie la liste des noms des élèves d'âge 16.
  1. c) Écrire une instruction qui ajoute l'enregistrement de Blanc, Brest, 17 ans.
Résoudre
Entraîne-toi★☆☆
Écrire en Python les instructions qui ouvrent le fichier eleves.csv (encodage UTF-8), le lisent avec csv.DictReader et stockent les enregistrements dans une liste table.…

Écrire en Python les instructions qui ouvrent le fichier eleves.csv (encodage UTF-8), le lisent avec csv.DictReader et stockent les enregistrements dans une liste table. Préciser comment fermer correctement le fichier.

Résoudre
Entraîne-toi★★☆
Une table villes contient les champs nom, region, population (entier) et superficie (en km²). a) Écrire une compréhension qui renvoie les villes de la région "Bretagne"…

Une table villes contient les champs nom, region, population (entier) et superficie (en km²).

  1. a) Écrire une compréhension qui renvoie les villes de la région "Bretagne" de plus de 50 000 habitants.
  1. b) Écrire une fonction qui renvoie la moyenne des densités (population divisée par superficie) de chaque ville de la table.
  1. c) Trier la table par population décroissante avec sorted et une fonction key.
Résoudre
Entraîne-toi★★☆
Une table inscrits est une liste de dictionnaires avec les champs id, nom, mail. a) Écrire une fonction doublons(table) qui renvoie la liste des adresses mail…

Une table inscrits est une liste de dictionnaires avec les champs id, nom, mail.

  1. a) Écrire une fonction doublons(table) qui renvoie la liste des adresses mail apparaissant plus d'une fois.
  1. b) Écrire une fonction coherente(table) qui renvoie True si tous les champs de chaque enregistrement sont non vides et si le mail contient le caractère @.
  1. c) Expliquer pourquoi l'utilisation d'un dictionnaire améliore l'efficacité de la recherche de doublons par rapport à deux boucles imbriquées.
Résoudre
Entraîne-toi★★☆
Deux tables : eleves avec les champs id, nom, id_club, et clubs avec les champs id_club, club, salle. a) Écrire une fonction fusion(eleves, clubs) qui renvoie une table…

Deux tables : eleves avec les champs id, nom, id_club, et clubs avec les champs id_club, club, salle.

  1. a) Écrire une fonction fusion(eleves, clubs) qui renvoie une table dont chaque enregistrement contient nom, club et salle.
  1. b) Que devient un élève dont id_club n'existe pas dans clubs ? Proposer un traitement.
  1. c) Donner la complexité de la fusion avec deux boucles imbriquées, puis expliquer comment l'améliorer.
Résoudre
Entraîne-toi★★★
Une table releves contient les champs station, date et temp (température en °C, lue comme chaîne dans le CSV) pour des stations météo françaises. a) Écrire une fonction…

Une table releves contient les champs station, date et temp (température en °C, lue comme chaîne dans le CSV) pour des stations météo françaises.

  1. a) Écrire une fonction qui convertit les températures en flottants et signale les valeurs manquantes (chaîne vide) en les écartant.
  1. b) Écrire une fonction qui renvoie un dictionnaire donnant la température moyenne par station.
  1. c) En déduire la station la plus chaude en moyenne. Préciser ce qui se passe en cas d'égalité avec votre code.
Résoudre
Entraîne-toi★★★
On veut trier une table t selon deux critères : d'abord par ville croissante, puis, à ville égale, par age décroissant. a) Écrire l'appel à sorted correspondant en…

On veut trier une table t selon deux critères : d'abord par ville croissante, puis, à ville égale, par age décroissant.

  1. a) Écrire l'appel à sorted correspondant en utilisant une fonction key renvoyant un couple.
  1. b) Justifier que le tri de Python est stable et montrer comment l'utiliser pour obtenir le même résultat avec deux tris successifs. Préciser l'ordre des deux tris.
  1. c) Appliquer la méthode aux enregistrements (Lille, 16), (Nice, 17), (Lille, 18), (Nice, 15) et donner le résultat.
Résoudre
Entraîne-toi★★★
Une table emprunts (champs id_livre, id_lecteur, date) et une table livres (champs id_livre, titre, auteur) décrivent une médiathèque à Rennes. a) Écrire une fonction…

Une table emprunts (champs id_livre, id_lecteur, date) et une table livres (champs id_livre, titre, auteur) décrivent une médiathèque à Rennes.

  1. a) Écrire une fonction qui renvoie le titre du livre le plus emprunté.
  1. b) Écrire une fonction qui renvoie, pour chaque lecteur, la liste des titres empruntés.
  1. c) Identifier deux contrôles de cohérence entre les tables et écrire une fonction qui les vérifie.
Résoudre