Adloun

NSI (première) · Chapitre 6 · Application directe du cours

Écrire descripteurs(table), qui rend la liste des descripteurs

Traiter des données en tables · Lire une table, convertir ses colonnes · niveau 1 (application)

Énoncé

Écrire descripteurs(table), qui rend la liste des descripteurs. Que doit-elle rendre sur une table vide, et pourquoi n'est-ce pas une erreur ?

Corrigé


def descripteurs(table):
    """Liste des descripteurs, dans l'ordre du fichier.

    Postcondition : rend [] si la table est vide.
    """
    if len(table) == 0:
        return []
    return list(table[0].keys())

descripteurs(eleves)   # ['nom', 'classe', 'moyenne', 'option']
descripteurs([])       # []

Le cas limite. Sans le test, table[0] lève une IndexError. Or une table vide n'est pas une anomalie : un fichier CSV réduit à sa ligne d'en-tête, ou une sélection qui ne retient rien, en produit une couramment. La fonction doit donc y répondre, et [] est la seule réponse sensée.

Une réserve honnête. Les descripteurs sont lus sur la première ligne. Cela suppose que toutes les lignes ont les mêmes clés — ce que importer vérifie par une assertion. Sans cette garantie, la fonction rendrait les descripteurs d'une ligne, pas ceux de la table.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →