Exercices sur les listes

Numérique et sciences informatiques

python

Somme par indices pairs

On donne un tableau de nombres nombres.

La fonction somme_par_indices_pairs prend le tableau en argument et renvoie la somme des valeurs placées à des indices pairs.

>>> # indice 0 1 2
>>> nombre = [4, 6, 3]
>>> somme_par_indices_pairs(nombres)
>>> 7
>>> somme_par_indices_pairs([])
>>> 0

En effet,il y a deux indices pairs (0 et 2) et la somme des valeurs correspondantes vaut 7.

Compléter le code de la fonction ci-dessous :

def somme_par_indices_pairs(nombres):
    somme = ...
    for ... in range(...) :
        if ... :
            somme = ...
    return ...

# Tests
assert somme_par_indices_pairs([]) == 0
assert somme_par_indices_pairs([4, 6, 3]) == 7

Somme des valeurs pairs

On donne un tableau de nombres nombres.

La fonction somme_des_valeurs_paires prend le tableau en argument et renvoie la somme des valeurs paires.

>>> # indice 0 1 2
>>> nombre = [4, 6, 3]
>>> somme_des_valeurs_paires(nombres)
>>> 10
>>> somme_des_valeurs_paires([])
>>> 0

En effet,il y a deux valeurs paires (4 et 6) et leur somme vaut 10.

On rappelle qu'il est possible de tester la parité d'un nombre n en faisant n % 2 == 0 :

>>> 12 % 2 == 0
>>> True
>>> 13 % 2 == 0
>>> False

Compléter le code de la fonction ci-dessous :

def somme_des_valeurs_paires(nombres):
    somme = ...
    for ... in ...:
        if ...:
            somme = ...
    return ...

# Tests
assert somme_des_valeurs_paires([]) == 0
assert somme_des_valeurs_paires([4, 6, 3]) == 10

Filtre par longueur

On dispose d'une liste de prénoms, et on s'intéresse à ceux d'une longueur donnée.

Compléter la fonction filtre_par_longueur afin qu'elle renvoie la liste des prénoms de la longueur souhaitée. Cette fonction :

  • prend deux arguments : liste_prenoms, une liste de prénoms et longueur, un entier naturel ;
  • renvoie la liste des prénoms de liste_prenoms dont la longueur est égale à longueur.

On prendra soin de renvoyer les prénoms dans leur ordre d'apparition dans la liste initiale.

>>>filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 7)
>>>['Francky', 'Charles', 'Nicolas']
>>>filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 3)
>>>['Léa']
filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 10)
>>>[]

Compléter le code de la fonction :

def filtre_par_longueur(liste_prenoms, ...):
    resultat = []
    for prenom in ...:
        if ... == longueur:
            resultat.append(...)
    return ...


# Tests
prenoms = ['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas']
assert filtre_par_longueur(prenoms, 7) == ['Francky', 'Charles', 'Nicolas']
assert filtre_par_longueur(prenoms, 3) == ['Léa']
assert filtre_par_longueur(prenoms, 10) == []

Moyenne

Écrire une fonction moyenne prenant en paramètre un tableau non vide d'entiers et qui renvoie la moyenne des valeurs du tableau.

>>>moyenne([10, 20, 30, 40, 60, 110])
>>> 45.0
>>>moyenne([1, 3])
>>> 2.0
>>>moyenne([44, 51, 12, 72, 65, 34])
>>> 46.333333333333336

Compléter le code ci-dessous :

def moyenne(valeurs):
    ...



Maximum d'un tableau : valeur et indice

Écrire une fonction valeur_et_indice_du_max qui prend en paramètre une liste de nombres entiers valeurs et renvoie un couple donnant le plus grand élément de cette liste, ainsi que l'indice de la première apparition de ce maximum dans la liste.

>>>valeur_et_indice_du_max([1, 5, 6, 9, 1, 2, 3, 7, 9, 8])
>>> (9, 3)
>>> valeur_et_indice_du_max([1, 1, 1, 99, 99])
>>> (99, 3)
>>> valeur_et_indice_du_max([10])
>>> (10, 0)

Compléter le code ci-dessous :

def valeur_et_indice_du_max(valeurs):
    ...




# tests
assert valeur_et_indice_du_max([1, 5, 6, 9, 1, 2, 3, 7, 9, 8]) == (9, 3)
assert valeur_et_indice_du_max([1, 1, 1, 99, 99]) == (99, 3)
assert valeur_et_indice_du_max([10]) == (10, 0)