Calculer sa moyenne
Héloïse souhaite calculer sa moyenne. Pour cela elle a saisi la liste de ses notes dans une
variable notes
. Nous allons l'aider à calculer sa moyenne.
- 1
Quelle est la deuxième note de la liste ? Dans la console saisi l'instruction permettant d'accéder à cette note à partir de la liste
notes
Solution
La deuxième note est à l'indice 1
>>> notes[1]
- 2
Que renvoie l'instruction
notes[50]
lorsque tu la saisies dans la console ? Essaie de deviner ce qu'il va se passer.Solution
L'instruction renvoie une erreur :
>>> notes[50]
IndexError: list index out of range
- 3
Pour calculer la moyenne d'Héloïse il nous faut utiliser la formule :
On a donc besoin du nombre total de notes. Combien y a-t-il de notes dans la liste ? (tu peux les compter manuellement)
Le problème en utilisant ce nombre directement c'est qu'il faudra modifier la formule à chaque fois qu'Héloïse ajoute une note. Le programme ne sera pas dynamique.
On peut faire mieux, pour ne pas avoir à compter manuellement ! C'est ce que permet la fonction
len
(pour length ou longueur en anglais)
Que renvoie l'instructionlen(notes)
dans la console ?Solution
On appelle la fonction
len
sur la listenotes
>>> len(notes) 8
- 4
On pourrait faire la somme des notes en faisant
S = notes[0] + notes[1] + ...
afin d'additionner chacun des éléments. Mais ici encore le code ne serait pas dynamique et si la liste change de longueur il faudrait modifier la formule pour ajouter les nouveaux termes.Pour y remédier on va utiliser une boucle for. Dans l'éditeur j'ai ajouté un début de code pour t'aider. La variable
S
va permettre de calculer la somme des notes.Pour itérer directement sur les éléments d'une liste on utilise la syntaxe suivante :
for note in notes: print(note)
Observe que je n'utilise pas la fonction
range
. Dans le code précédent la variablenote
de la lignefor note in notes
prend donc successivement les valeurs des différents éléments de la listenotes
. Donc ce code nous afficherait les notes une à une.
À toi de jouer. Dans le corps de la boucle for ajoute une instruction pour incrémenter la variableS
à chaque itération. À la fin de la boucleS
doit contenir la somme des notes.Solution
Pour calculer la somme des notes, à chaque itération il faut ajouter à
S
la valeur de la note suivante :notes = [12, 14, 13, 15, 12.5, 16, 11, 13] S = 0 for note in notes: S = S + note
- 5
Il ne reste plus qu'à finir le calcul de la moyenne. Défini une variable
moyenne
et affecte-lui le calcul de la moyenne d'Héloïse en utilisantS
etnotes
Ensuite affiche la avec un
print
Solution
On connaît le nombre de notes à l'aide de la fonction
len
, donc la moyenne s'obtient en faisantS / len(notes)
. On ajoute unprint
pour afficher le résultat du calcul.notes = [12, 14, 13, 15, 12.5, 16, 11, 13] S = 0 for i in range(len(notes)): S = S + notes[i] moyenne = S/len(notes) print(moyenne)
len
nous donne la longueur d'une liste.