Un cap pour ce chapitre
Ce que vous saurez faire
- Accéder à une case avec la notation
a[i][j] - Parcourir les lignes et les colonnes d’une matrice
- Construire une grille rectangulaire avec des lignes indépendantes
Un tableau dont les éléments sont des lignes
La matrice [[2, 5, 1], [7, 0, 4]] contient deux lignes, chacune de trois éléments. Le premier accès a[1] fournit la seconde ligne [7, 0, 4]. Le second accès a[1][2] fournit ensuite sa case d’indice 2, donc 4. La notation se lit de l’extérieur vers l’intérieur : on choisit d’abord le tableau ligne, puis son élément. Une matrice rectangulaire conserve la même longueur pour toutes les lignes. Des tableaux de longueurs différentes sont possibles en Python, mais demandent une interprétation et des parcours adaptés.
La longueur du tableau extérieur mesure le nombre de lignes. La longueur d’une ligne mesure le nombre de colonnes de cette ligne. Pour le tableau vide, il n’existe aucune première ligne dont on pourrait mesurer la longueur : ce cas doit être prévu avant un accès à a[0].
Choisir une convention visible
Nous utilisons i pour l’indice de ligne et j pour l’indice de colonne, tous deux à partir de zéro. Dans une grille affichée, la ligne zéro est en haut et la colonne zéro à gauche. Cette convention n’est pas celle d’un repère mathématique où l’axe vertical croît souvent vers le haut. Les noms et les étiquettes du schéma doivent donc être explicites. Pour une matrice de h lignes et l colonnes, les accès valides vérifient 0 <= i < h et 0 <= j < l.
Les indices ne sont pas des coordonnées géométriques universelles. Dans une image, augmenter la ligne descend souvent dans l’affichage. Une consigne comme « voisin du dessus » se traduit donc par une ligne diminuée de un, à condition que cette ligne existe.
Parcourir avec deux boucles
Pour examiner toutes les cases ligne par ligne, une boucle extérieure choisit la ligne, puis une boucle intérieure parcourt ses colonnes. Dans une matrice de deux lignes et trois colonnes, six cases sont visitées. Pour calculer un total général, on initialise le total avant les deux boucles. Pour obtenir un total par ligne, on initialise un accumulateur au début de chaque nouvelle ligne. Ce placement traduit la portée du résultat : conserver toutes les contributions ou recommencer pour chaque groupe.
a = [[2, 5, 1], [7, 0, 4]]
total = 0
for i in range(len(a)):
for j in range(len(a[i])):
total = total + a[i][j]
print(total)Un parcours de toutes les cases d’une grille rectangulaire de h lignes et l colonnes visite h fois l éléments. Pour une seule colonne, il en visite h ; pour une seule ligne, l. Annoncer le parcours permet donc de prévoir le nombre de contributions au total.
Construire des lignes réellement distinctes
La compréhension [[0 for j in range(3)] for i in range(2)] construit deux lignes séparées de trois zéros. Une écriture qui répète plusieurs fois le même tableau intérieur peut partager une seule ligne entre plusieurs positions : modifier une case semble alors modifier plusieurs lignes. Ce détail Python prépare les questions de références approfondies en Terminale. En Première, on peut éviter ce piège avec une construction explicite et vérifier le résultat en modifiant une seule case. La représentation doit correspondre au modèle : chaque ligne d’un plateau indépendant doit pouvoir évoluer séparément.
Une grille peut être correctement affichée au départ alors que ses lignes sont partagées. Le test utile consiste à changer une seule case puis vérifier toutes les autres. L’apparence initiale ne permet pas de distinguer plusieurs lignes indépendantes d’une même ligne répétée.
Sélectionner une zone par une condition sur les indices
Dans la grille [[2, 5, 1], [7, 0, 4], [3, 8, 6]], la ligne un contient sept, zéro et quatre, soit onze. La colonne un contient cinq, zéro et huit, soit treize. La diagonale principale contient les cases où les deux indices sont égaux : deux, zéro et six, soit huit.
Ces trois sélections examinent la même grille, mais fixent ou relient les indices différemment. Pour une diagonale principale d’une matrice carrée, on peut accéder directement à a[i][i]. Une matrice rectangulaire exige de limiter ce parcours à la plus petite dimension pour rester dans les cases existantes.
Examiner des voisins sans sortir de la grille
Pour une case de ligne i et colonne j, les voisins orthogonaux possibles sont au-dessus, au-dessous, à gauche et à droite. Une case intérieure en possède quatre, une case sur un bord ordinaire trois, et un coin deux dans une grille ayant au moins deux lignes et deux colonnes.
Chaque voisin doit être validé dans les deux dimensions avant lecture. Pour le coin supérieur gauche, seuls (1, 0) et (0, 1) existent. Lire une ligne moins un en Python ne provoque pas nécessairement une erreur : cela peut viser la dernière ligne, ce qui ne représente pas le voisin géométrique attendu.
À vous de faire varier les choses
Explorez lignes, colonnes et diagonale
Choisissez le parcours. Repérez les cases sélectionnées et vérifiez leur somme ; les deux indices restent visibles.
Lire le résultat de l’expérience initiale
Somme des cases sélectionnées : 11
La première coordonnée choisit la ligne ; la seconde choisit la colonne. Les cases actives sont celles qui contribuent à la somme.
| Ligne | Colonne | Valeur | Sélectionnée |
|---|---|---|---|
| 0 | 0 | 2 | Non |
| 0 | 1 | 5 | Non |
| 0 | 2 | 1 | Non |
| 1 | 0 | 7 | Oui |
| 1 | 1 | 0 | Oui |
| 1 | 2 | 4 | Oui |
| 2 | 0 | 3 | Non |
| 2 | 1 | 8 | Non |
| 2 | 2 | 6 | Non |
Fixer une ligne ou fixer une colonne correspond à deux parcours différents du même ensemble de cases.
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.
Retrouver une case
Pour a = [[4, 8, 1], [6, 3, 9]], donnez a[0], a[1][0] et a[0][2].
Indice 1
Le premier indice choisit la ligne.
Indice 2
Le second indice est interprété à l’intérieur de cette ligne.
Comprendre la correction
a[0] vaut [4, 8, 1], car cet accès fournit une ligne entière. a[1][0] vaut 6, premier élément de la seconde ligne. a[0][2] vaut 1, troisième élément de la première ligne. Les résultats n’ont donc pas tous le même type : une ligne est un tableau, une case contient ici un entier.
Un total par colonne
Calculez les sommes des colonnes de [[2, 5], [7, 1], [3, 4]]. Décrivez quel indice doit rester fixe pendant une somme.
Indice 1
Une colonne conserve sa position horizontale à travers toutes les lignes.
Indice 2
Additionnez d’abord les éléments d’indice 0 de chaque ligne.
Comprendre la correction
La première colonne vaut 2 + 7 + 3 = 12 ; la seconde vaut 5 + 1 + 4 = 10. Pour chaque somme, l’indice de colonne j reste fixe tandis que l’indice de ligne i varie. Inverser cette logique donnerait les sommes de lignes 7, 8 et 7.
La mauvaise frontière
Une grille possède trois lignes et cinq colonnes. Pourquoi a[3][0] est-il invalide alors que a[2][4] est valide ?
Indice 1
La longueur compte les éléments, mais les indices commencent à zéro.
Indice 2
Écrivez séparément les ensembles d’indices autorisés.
Comprendre la correction
Les indices de lignes sont 0, 1 et 2 ; les colonnes vont de 0 à 4. a[3][0] demande une quatrième ligne inexistante. a[2][4] désigne la troisième ligne et la cinquième colonne, donc la dernière case. Vérifier les deux dimensions empêche de confondre taille et dernier indice.
Replacer l’initialisation
Pour calculer la somme de toutes les cases, un programme remet total à zéro au début de chaque ligne. Que contiendra-t-il à la fin ? Où déplacer l’initialisation ?
Indice 1
Les contributions des lignes précédentes sont effacées.
Indice 2
Le total recherché doit survivre au changement de ligne.
Comprendre la correction
À la fin, total contient uniquement la somme de la dernière ligne. Il faut initialiser total avant la boucle extérieure, puis ajouter chaque case dans la boucle intérieure. Une remise à zéro par ligne serait correcte pour produire plusieurs sommes de lignes, à condition de conserver chacune avant de recommencer.
Trois parcours dans la même grille
Pour [[4, 1, 7], [2, 8, 3], [6, 0, 5]], calculez la somme de la ligne un, de la colonne un et de la diagonale principale. Pour chaque parcours, précisez quel indice est fixe ou quelle relation unit les indices.
Indice 1
La ligne un est la deuxième ligne.
Indice 2
Sur la diagonale principale, les indices sont égaux.
Comprendre la correction
La ligne un donne 2 + 8 + 3, soit treize. La colonne un donne 1 + 8 + 0, soit neuf. La diagonale donne 4 + 8 + 5, soit dix-sept. Le premier parcours fixe la ligne, le second fixe la colonne et le troisième impose l’égalité des indices.
Les voisins d’un coin
Dans [[4, 1, 7], [2, 8, 3]], on étudie les voisins orthogonaux de la case (0,0). Donnez les positions valides, leurs valeurs et leur somme. Expliquez pourquoi accéder à la ligne -1 ne représente pas un voisin supérieur valide.
Indice 1
Un voisin orthogonal change exactement un indice d’une unité.
Indice 2
La ligne zéro n’a pas de ligne au-dessus.
Comprendre la correction
Les voisins sont (0,1), de valeur un, et (1,0), de valeur deux. La somme vaut trois. La position (-1,0) est hors de la grille géométrique ; Python pourrait pourtant l’interpréter comme la dernière ligne. Il faut donc tester les bornes positives explicitement au lieu de compter seulement sur une erreur d’accès.
Comparer le total général aux totaux de lignes
Une matrice vaut [[3, 1], [5, 2], [4, 6]]. Un programme remet le total à zéro au début de chaque ligne. Donnez les trois totaux de lignes et la valeur finale conservée. Corrigez pour obtenir le total général et vérifiez par un autre regroupement.
Indice 1
La dernière initialisation efface les lignes précédentes.
Indice 2
Additionnez les totaux de lignes pour une vérification indépendante.
Comprendre la correction
Les totaux de lignes sont quatre, sept et dix. La valeur finale conservée est seulement dix. Initialiser avant les deux boucles donne vingt et un. On vérifie aussi par colonnes : 3 + 5 + 4 vaut douze et 1 + 2 + 6 vaut neuf, soit vingt et un.
Les erreurs qui méritent un détour
- Inverser
a[i][j] et a[j][i] - Une grille non carrée révèle rapidement cette erreur. Nommez et affichez les deux dimensions.
- Croire qu’un accès simple fournit toujours une case
- Avec un tableau de tableaux,
a[i] fournit d’abord une ligne entière.
La fiche à garder
L’essentiel à retenir
a[i][j] choisit une ligne puis une case.- Deux dimensions impliquent deux limites à vérifier.
- L’emplacement de
l’accumulateur détermine la portée du total.
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 · Centres étrangers groupe 1 · Jour 1 : Carré de Polybe : générer une grille et convertir les coordonnées
- 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
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.
