Un cap pour ce chapitre
Ce que vous saurez faire
- Lire et modifier une case à partir de son indice
- Distinguer parcours des valeurs et parcours des indices
- Gérer les limites et le tableau vide
Les bases utiles pour commencer
L’indice désigne une place
Dans mesures = [14, 9, 21, 9], les quatre indices sont 0, 1, 2 et 3. mesures[2] vaut 21 ; le nombre 2 désigne une position, pas la deuxième valeur dans le langage courant. La longueur len(mesures) vaut 4, mais l’indice 4 est déjà hors limites. Plusieurs cases peuvent contenir la même valeur : ici 9 apparaît aux indices 1 et 3. Demander « où se trouve 9 ? » nécessite donc de préciser si l’on veut une occurrence, la première ou toutes les positions.
Un tableau peut avoir une longueur égale à l’une de ses valeurs, mais cette égalité est accidentelle. Pour diagnostiquer un accès, dessinez deux lignes : les indices au-dessus et les contenus au-dessous. On voit alors immédiatement si le programme manipule une position ou une donnée.
Modifier une case conserve son emplacement
L’affectation mesures[1] = 12 remplace le contenu de la case d’indice 1, sans modifier les autres cases ni changer la longueur. Pour augmenter une valeur, on peut écrire mesures[i] = mesures[i] + 1. La partie droite est calculée avant le remplacement, comme pour une variable simple. En Première, nous étudions les tableaux avec des éléments de même type et nous utilisons les listes Python pour les représenter. Leur redimensionnement dynamique et les bibliothèques comme NumPy ne sont pas nécessaires pour comprendre l’accès indexé demandé ici.
Une modification dépend de l’état au moment de la lecture. Si l’on remplace d’abord la première case, puis utilise cette case pour calculer la suivante, la seconde instruction lit la valeur nouvelle. Pour un calcul fondé sur les données initiales, il faut préserver les valeurs nécessaires.
Deux parcours pour deux besoins
Avec for valeur in mesures, la variable reçoit successivement les contenus des cases. Ce parcours convient pour calculer une somme ou afficher les mesures. Avec for i in range(len(mesures)), on parcourt les indices et on accède à mesures[i]. Ce second choix est utile pour modifier les cases ou renvoyer une position. Affecter valeur = valeur + 1 dans un parcours des entiers ne modifie pas le tableau : on réaffecte seulement le nom local de la boucle. Pour transformer les cases, il faut affecter aux indices ou construire un nouveau tableau.
mesures = [14, 9, 21, 9]
for i in range(len(mesures)):
mesures[i] = mesures[i] + 1
print(mesures)Un parcours direct est plus lisible lorsqu’on n’a besoin que des valeurs. Un parcours par indices rend explicites la position, les accès aux voisins et les modifications. Choisir l’un ou l’autre doit répondre à la question posée, et pas à une préférence de syntaxe.
Traiter la première et la dernière case avec soin
Le tableau vide possède une longueur nulle et aucun indice valide. Un parcours peut naturellement effectuer zéro passage, mais un accès direct à la première case échoue. Pour les tableaux non vides, l’indice du dernier élément est len(t) - 1. Les indices négatifs existent en Python, mais ne sont pas nécessaires pour apprendre le modèle indexé de base. La même prudence s’applique aux tranches : elles sont utiles, mais non exigibles en Première. Une solution reposant sur des indices ordinaires doit pouvoir être expliquée sans raccourcis syntaxiques.
Un tableau d’un élément possède à la fois sa première et sa dernière case à l’indice zéro. Ce cas révèle les boucles qui excluent involontairement une extrémité. Testez aussi une valeur répétée lorsque le contrat annonce une première occurrence ou toutes les positions.
Une transformation qui dépend des valeurs initiales
On veut remplacer chaque case, sauf la dernière, par la somme de cette case et de sa voisine droite. Sur [2, 5, 1], le résultat attendu est [7, 6, 1]. Un parcours de gauche à droite convient ici : lorsque l’on traite une case, sa voisine droite n’a pas encore été changée.
Un parcours de droite à gauche donnerait au contraire [8, 6, 1], car la première case lirait la nouvelle valeur six de sa voisine. Les deux programmes utilisent les mêmes indices, mais pas les mêmes instants de lecture. La spécification doit préciser si le calcul utilise les données originales ou les valeurs déjà mises à jour.
Rechercher une position avec une convention d’absence
Pour trouver la première occurrence de neuf dans [14, 9, 21, 9], on examine les indices dans l’ordre. L’indice un est le premier qui convient. Le second neuf, à l’indice trois, ne doit pas remplacer la réponse si le contrat exige la première occurrence.
On peut renvoyer immédiatement l’indice trouvé dans une fonction, puis renvoyer -1 après le parcours si aucun élément ne convient. Le tableau vide donne naturellement l’absence. Le programme appelant doit vérifier ce résultat spécial avant de lire une case, car en Python l’indice moins un possède aussi le sens du dernier élément.
À vous de faire varier les choses
Visez la bonne case
Choisissez un indice et une valeur de remplacement. Comparez l’état avant et après, puis essayez un indice hors limites.
Lire le résultat de l’expérience initiale
Case 1 modifiée
La longueur vaut 4. Les indices valides vont de 0 à 3.
| Indice | Avant | Après |
|---|---|---|
| 0 | 14 | 14 |
| 1 | 9 | 12 |
| 2 | 21 | 21 |
| 3 | 9 | 9 |
La case et son contenu sont deux informations distinctes. Une bonne trace les affiche séparément.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Valeur ou position
Avec t = [6, 4, 8, 4], donnez t[1], len(t), l’indice de la dernière case et les indices contenant 4.
Indice 1
Commencez la numérotation des cases à zéro.
Indice 2
Une même valeur peut figurer dans plusieurs cases.
Comprendre la correction
t[1] vaut 4, len(t) vaut 4 et le dernier indice vaut 3. La valeur 4 apparaît aux indices 1 et 3. La longueur et la valeur t[1] coïncident ici par hasard ; elles décrivent des propriétés différentes et ne doivent pas être confondues dans le raisonnement.
Modifier une seule case
On part de t = [3, 7, 2] et on exécute t[1] = t[0] + t[2]. Quel est le tableau final ?
Indice 1
Calculez d’abord la partie droite avec le tableau initial.
Indice 2
Seule la case d’indice 1 reçoit le résultat.
Comprendre la correction
La partie droite vaut 3 + 2 = 5. Le tableau devient [3, 5, 2]. Les cases d’indices 0 et 2 sont lues mais ne sont pas modifiées. La longueur reste trois : une affectation à une case remplace son contenu sans ajouter une nouvelle position.
Une augmentation sans effet
Pourquoi for valeur in t: valeur = valeur + 1 ne transforme-t-il pas un tableau d’entiers ? Proposez un parcours qui modifie les cases.
Indice 1
La variable valeur reçoit un entier, pas un accès permanent à la case.
Indice 2
L’affectation doit viser t[i].
Comprendre la correction
Le nom valeur est réaffecté à un nouvel entier, mais aucune instruction n’écrit dans le tableau. On utilise for i in range(len(t)): t[i] = t[i] + 1, avec l’affectation indentée. Chaque case est alors explicitement remplacée, ce qui réalise la transformation annoncée.
Le test du tableau vide
Une fonction parcourt tous les éléments pour calculer une somme initialisée à zéro. Une autre initialise son résultat avec t[0]. Comment se comportent-elles sur [] ?
Indice 1
Un parcours du vide effectue zéro passage.
Indice 2
Un accès au premier élément suppose qu’il existe.
Comprendre la correction
La somme renvoie naturellement zéro : l’accumulateur conserve sa valeur initiale. L’accès t[0] provoque une erreur car aucune case n’existe. Le contrat de la seconde fonction doit donc exclure le tableau vide ou prévoir un traitement spécifique. Le cas vide permet de distinguer ces deux conceptions dès la préparation des tests.
Deux ordres de modification
On part de [2, 5, 1]. On remplace chaque case sauf la dernière par sa valeur plus celle de droite. Tracez un parcours de gauche à droite puis de droite à gauche. Lequel utilise les couples de valeurs initiales ?
Indice 1
La case de droite peut avoir déjà été modifiée.
Indice 2
Écrivez l’état complet après chaque affectation.
Comprendre la correction
De gauche à droite, on obtient [7, 5, 1] puis [7, 6, 1]. De droite à gauche, on obtient [2, 6, 1] puis [8, 6, 1]. Le premier parcours lit toujours une voisine encore inchangée. L’ordre d’exécution fait donc partie de la méthode.
La première occurrence seulement
Une recherche de 4 dans [4, 2, 4, 8] mémorise l’indice chaque fois qu’elle rencontre la cible. Quelle réponse finale produit-elle ? Proposez une adaptation pour renvoyer la première occurrence. Donnez aussi le résultat attendu pour une cible absente.
Indice 1
Le dernier remplacement efface l’indice précédent.
Indice 2
Un retour immédiat termine la recherche dès la première rencontre.
Comprendre la correction
La version décrite finit à l’indice deux. Pour obtenir zéro, on peut renvoyer l’indice dès le premier test réussi, puis renvoyer moins un après la boucle seulement si rien n’a été trouvé. La cible absente donne alors moins un ; cette convention doit être annoncée et traitée par l’appelant.
Compter des changements entre voisins
Pour [3, 3, 5, 5, 2], comptez les positions où une valeur diffère de la précédente. Donnez les indices à comparer et le résultat. Adaptez votre raisonnement au tableau vide et à un seul élément.
Indice 1
La première comparaison utilise les indices zéro et un.
Indice 2
Le parcours des positions courantes commence à un.
Comprendre la correction
On compare les couples d’indices (0,1), (1,2), (2,3) et (3,4). Les changements apparaissent aux indices deux et quatre, donc le compteur vaut deux. Un parcours de range(1, len(t)) évite de lire un prédécesseur inexistant. Pour le vide et pour un élément, aucune comparaison n’a lieu et le résultat est zéro.
Les erreurs qui méritent un détour
- Utiliser
len(t) comme dernier indice - Le dernier indice d’un tableau non vide est
len(t) - 1, puisque la numérotation commence à zéro. - Confondre changer la variable du parcours et changer une case
- Seule une affectation à une case ou une reconstruction du tableau réalise la modification attendue.
La fiche à garder
L’essentiel à retenir
- L’indice désigne une place et la
valeurson contenu. - Un accès doit rester dans les limites du tableau.
- Le parcours se choisit selon le résultat ou la modification recherchée.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
- Bac 2026 · Métropole · Jour 2 : Taquin : corriger le programme et conserver la résolubilité
- Bac 2026 · Asie · Jour 2 : Taquin : déplacements légaux et résolution par historique
- Bac 2026 · Banque nationale · Sujet 1 : Compression RLE des images en niveaux de gris
- Bac 2026 · Banque nationale · Sujet 10 : Consommation d’eau, fuite nocturne et moyenne glissante
Le prochain pas
Retrouver le catalogue de Première
Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
