Listes et parcours de données
Ce qu'il faut comprendre
En programmation, on a souvent besoin de manipuler plusieurs valeurs à la fois. Par exemple, les notes d'un élève, les températures d'une semaine, ou les noms de tes amis. Pour cela, on utilise une liste : c'est une sorte de boîte qui peut contenir plusieurs éléments. Ensuite, on peut parcourir cette liste, c'est-à-dire examiner chaque élément un par un, pour faire des calculs, vérifier des conditions, ou écrire les données dans un fichier.
Les listes sont très utiles en SNT, notamment pour traiter des données provenant de fichiers CSV (par exemple, un tableau de notes ou de relevés météo).
Les notions essentielles
Variable
Une variable est un espace mémoire qui stocke une valeur. En Python, on crée une variable en lui donnant un nom et une valeur :
note = 15
Condition
Une condition permet d'exécuter du code seulement si une expression est vraie. On utilise if, elif, else.
if note >= 10:
print("Admis")
else:
print("Refusé")
Boucle
Une boucle permet de répéter des instructions. La boucle for est parfaite pour parcourir une liste.
for element in liste:
print(element)
Liste
Une liste est une collection ordonnée d'éléments, notée entre crochets [].
notes = [12, 15, 8, 19]
On peut accéder à un élément par son indice (qui commence à 0) : notes[0] vaut 12.
Fichier CSV
Un fichier CSV (Comma-Separated Values) est un fichier texte où les données sont séparées par des virgules (ou un autre séparateur). On peut le lire avec Python pour récupérer des listes.
Algorithme
Un algorithme est une suite d'instructions pour résoudre un problème. Par exemple, calculer la moyenne d'une liste de notes.
Méthode
1. Créer une liste
ma_liste = [valeur1, valeur2, valeur3]
2. Parcourir une liste avec une boucle for
for element in ma_liste:
# faire quelque chose avec element
3. Utiliser une condition à l'intérieur de la boucle
for note in notes:
if note >= 10:
print(note, "est une note >= 10")
4. Lire un fichier CSV
import csv
with open('fichier.csv', newline='') as f:
lecteur = csv.reader(f)
for ligne in lecteur:
print(ligne) # ligne est une liste de chaînes
5. Écrire dans un fichier CSV
with open('sortie.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Nom', 'Note'])
writer.writerow(['Alice', 15])
Exemple corrigé
Problème : On a un fichier notes.csv contenant les notes de 5 élèves (une note par ligne). On veut lire ce fichier, calculer la moyenne, et afficher les notes supérieures ou égales à 10.
Fichier notes.csv :
12
8
15
10
6
Code Python :
import csv
# 1. Lire les notes dans une liste
notes = []
with open('notes.csv', newline='') as f:
lecteur = csv.reader(f)
for ligne in lecteur:
# ligne est une liste d'une seule chaîne, ex: ['12']
note = int(ligne[0]) # convertir en entier
notes.append(note)
# 2. Calculer la moyenne
somme = 0
for note in notes:
somme = somme + note
moyenne = somme / len(notes)
print("Moyenne :", moyenne)
# 3. Afficher les notes >= 10
print("Notes >= 10 :")
for note in notes:
if note >= 10:
print(note)
Explication :
- On crée une liste vide
notes. - On ouvre le fichier CSV avec
csv.reader. Chaque ligne est une liste de chaînes. Ici, une seule colonne, doncligne[0]est la note sous forme de texte. - On convertit en entier avec
int()et on ajoute à la liste avecappend(). - On calcule la somme en parcourant la liste, puis on divise par le nombre d'éléments (
len(notes)). - On parcourt à nouveau la liste et on affiche les notes qui satisfont la condition
note >= 10.
Résultat affiché :
Moyenne : 10.2
Notes >= 10 :
12
15
10
Erreurs fréquentes
- Oublier l'indice 0 :
notes[1]donne le deuxième élément, pas le premier. Le premier estnotes[0]. - Confondre
=et==:=est pour affecter,==pour comparer. Dans une condition, on utilise==. - Ne pas convertir les types : Quand on lit un fichier CSV, les données sont des chaînes. Il faut les convertir en entier ou flottant avec
int()oufloat()avant de faire des calculs. - Oublier d'importer
csv: Pour utiliser les fichiers CSV, il faut écrireimport csven haut du programme. - Indentation : En Python, les blocs (dans une boucle ou une condition) sont délimités par l'indentation. Il faut être cohérent (4 espaces par niveau).
À retenir
- Une liste se note
[ ]et peut contenir plusieurs valeurs. - On parcourt une liste avec
for element in liste:. - On peut combiner boucle et condition pour filtrer des éléments.
- Un fichier CSV se lit avec
csv.readeret s'écrit aveccsv.writer. - Toujours convertir les données lues en nombres si nécessaire.
- L'indentation est cruciale en Python.
Pour s'entraîner
Pour vérifier que tu as bien compris, rends-toi sur les exercices et quiz de la fiche « Listes et parcours de données » sur AlloSeconde. Tu y trouveras des défis pour créer des listes, les parcourir, et manipuler des fichiers CSV. Bon courage !
