Adloun

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

Soit notes = 12, 15, 8, 17, 11

Les types construits · Tableaux, indices et matrices · niveau 1 (application)

Énoncé

Soit notes = [12, 15, 8, 17, 11]. Donner la valeur de notes[0], notes[4], len(notes), et dire ce que produit notes[5]. Écrire ensuite l'accès au dernier élément d'un tableau t de longueur quelconque.

Corrigé


notes = [12, 15, 8, 17, 11]

notes[0]        # 12  : le premier element
notes[4]        # 11  : le dernier, car il y a 5 elements
len(notes)      # 5
notes[5]        # IndexError: list index out of range

La règle. Un tableau de éléments a des indices de à . Il n'y a pas d'élément d'indice : notes[5] lève IndexError. C'est une bonne nouvelle — l'erreur est signalée, tout de suite, avec un message clair. En C, la même faute lirait silencieusement la mémoire voisine.

Le dernier élément, deux écritures.


t[len(t) - 1]   # l'ecriture generale, valable dans tous les langages
t[-1]           # le raccourci de Python

Les deux rendent ici. La première dit pourquoi : le dernier indice est . La seconde est plus courte mais propre à Python, et elle a un défaut pédagogique — elle masque la convention qu'on cherche justement à installer. Les deux exigent que le tableau soit non vide : sur un tableau vide, t[len(t) - 1] devient t[-1], qui lève IndexError lui aussi.

Où cette erreur se produit vraiment : dans for i in range(len(t) + 1), qui déborde d'une case, ou dans t[i + 1] au dernier tour d'une boucle. C'est l'erreur « de », la plus fréquente de toute la programmation.

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 →