Aller au contenu

2. Sommes en tout genre⚓︎

La plupart des algorithmes de calcul de somme sont basés sur le principe suivant:

  • On initialise une variable somme Ă  \(0\)
  • On parcourt les Ă©lĂ©ments Ă  additionner en les ajoutant au fur et Ă  mesure Ă  somme

Rappel : Parcours de listes

Il y a deux façons de parcourir des listes.

Sur les éléments :

for el in liste:
    instructions
Sur les indices :
for i in range(len(liste)):
    instructions

2.1 Somme des éléments d'une liste d'entiers⚓︎

On considère une liste d'entiers [ 5, 0, 4, -5, 1, -3] et on souhaite calculer la somme de ses éléments.

Sans utiliser la fonction sum de python, écrire une fonction somme1(liste) ci-dessous qui devra réussir les tests :

assert somme1([0,1,2,3]) == 6
assert somme1([ 5, 0, 4, -5, 1, -3]) == 2
assert somme1([]) == 0
assert somme1([1]) == 1

A

Z

2.2 Sommes des éléments négatifs et positifs d'une liste d'entiers⚓︎

On considère une liste d'entiers [ 5, 0, 4, -5, 1, -3] et on souhaite calculer les sommes de ses éléments négatifs et positifs, le résultat sera donné sous forme de tuple (somme_neg,somme_pos)

Écrire une fonction somme2(liste) ci-dessous qui devra réussir les tests suivants :

assert somme2([0,1,2,3]) == (0,6)
assert somme2([ 5, 0, 4, -5, 1, -3]) == (-8,10)
assert somme2([]) == (0,0)
assert somme2([0, 1, -1, 1, 0, 1]) == (-1 , 3)

A

Z

2.3 Calcul de moyenne⚓︎

Il s'agit de calculer la moyenne des valeurs d'une liste.

Écrire une fonction moyenne1(liste) qui renvoie la moyenne des éléments de la liste, cette fonction devra réussir les tests suivants :

assert moyenne1([10,12,9,8,15]) == (10 + 12 + 9 + 8 + 15)/5
assert moyenne1([]) == 'liste vide' 

A

Z

2.4 Moyenne coefficientée⚓︎

On dispose d'une liste de tuples (note, coefficient), on doit calculer la moyenne coefficientée .

Écrire une fonction moyenne2(liste) qui renvoie la moyenne coefficientée des éléments de la liste, cette fonction devra réussir les tests suivants :

assert moyenne2([(10,2),(12,1),(9,1),(8,3),(15,1)]) == (10*2 + 12 + 9 + 8*3 + 15)/8
assert moyenne2([]) == 'liste vide' 

A

Z

2.5 Avec des dictionnaires⚓︎

On considère le tableau suivant dont les éléments sont des dictionnaires :

animaux = [ {'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2},
            {'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5},
            {'nom':'Tom', 'espece':'chat', 'age':7, 'enclos':4},
            {'nom':'Belle', 'espece':'chien', 'age':6, 'enclos':3},
            {'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
Écrire une fonction moyenne3(tableau) qui renvoie l'âge moyen des chats, cette fonction devra réussir le test suivant :
assert moyenne3(animaux) == 5.0
Rappel :

Parcourir un dictionnaire :

for key in dico:
    instructions
Accéder aux valeurs :
# Dans notre exemple
animaux[1] # est un dictionnaire
animaux[1]["nom"] # renvoie 'Titine

A

Z

Retour en haut de la page