Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Relier deux tables

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

40 minutes

Dans quelle salle est Léa ?

Le lycée a une liste d’élèves. Elle dit : « Léa est en 2A. »

Mais la salle de la 2A n’est pas dans cette liste. Elle est dans une autre table, celle des classes.

Pour répondre, il faut relier les deux tables. C’est le sujet de cette leçon.

Mots-clés

MotCe que ça veut direExemple
IdentifiantUn code qui nomme une ligne sans se tromper.2A
Clé communeUne colonne qui existe dans les deux tables et permet de les relier.id_classe
JointureRelier les lignes de deux tables grâce à la clé commune.Léa et la ligne de la 2A
DoublonUne information écrite plusieurs fois pour rien.La salle B12 copiée pour chaque élève de 2A
Ligne orphelineUne ligne dont la clé n’existe pas dans l’autre table.Un élève en classe 2D
NoneLe mot de Python qui veut dire : rien trouvé.return None

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Pourquoi deux tables ?

On pourrait écrire la salle et le prof sur chaque ligne d’élève. Mais la salle de la 2A serait copiée vingt fois. Ce sont des doublons.

Si la salle change, il faudrait corriger vingt lignes. Avec deux tables, on la change une seule fois.

Les deux tables partagent une clé commune : id_classe.

À toi : lire les deux tables

Code: python
eleves = [
    {"nom": "Léa", "id_classe": "2A"},
    {"nom": "Karim", "id_classe": "2B"},
    {"nom": "Sofia", "id_classe": "2A"},
    {"nom": "Hugo", "id_classe": "2C"},
]
classes = [
    {"id_classe": "2A", "salle": "B12", "prof": "Mme Roux"},
    {"id_classe": "2B", "salle": "A04", "prof": "M. Petit"},
    {"id_classe": "2C", "salle": "C21", "prof": "Mme Diallo"},
]

print("Élèves :")
for eleve in eleves:
    print(eleve["nom"], "est en", eleve["id_classe"])

print("Classes :")
for classe in classes:
    print(classe["id_classe"], classe["salle"], classe["prof"])

# Dans quelle salle est Hugo ? Cherche à la main.

Exemple travaillé : suivre la clé

Élèveid_classeLigne trouvée dans classesSalle
Léa2A2A, B12, Mme RouxB12
Karim2B2B, A04, M. PetitA04
Sofia2A2A, B12, Mme RouxB12
Hugo2C2C, C21, Mme DialloC21

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Chercher la ligne qui correspond

Pour relier à la main, on fait comme pour trouver Hugo : on parcourt la table des classes et on compare les clés.

Dès que classe["id_classe"] est égal à eleve["id_classe"], on a trouvé.

On met cette recherche dans une fonction. Elle rend la classe trouvée, ou None si rien ne correspond.

À toi : une fonction qui cherche

Code: python
eleves = [
    {"nom": "Léa", "id_classe": "2A"},
    {"nom": "Karim", "id_classe": "2B"},
    {"nom": "Sofia", "id_classe": "2A"},
    {"nom": "Hugo", "id_classe": "2C"},
]
classes = [
    {"id_classe": "2A", "salle": "B12", "prof": "Mme Roux"},
    {"id_classe": "2B", "salle": "A04", "prof": "M. Petit"},
    {"id_classe": "2C", "salle": "C21", "prof": "Mme Diallo"},
]

def chercher_classe(classes, id_classe):
    for classe in classes:
        if classe["id_classe"] == id_classe:
            return classe
    return None

for eleve in eleves:
    classe = chercher_classe(classes, eleve["id_classe"])
    print(eleve["nom"], ": salle", classe["salle"], "avec", classe["prof"])

Exemple travaillé : la recherche pour Karim

ÉtapeClasse regardéeMême clé que 2B ?
12ANon, on continue
22BOui, on rend cette ligne
32CJamais regardée : la fonction s’est arrêtée

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Contrôle rapide

À toi de jouer

Contrôle rapide

4 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

La leçon continue

9 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.