Quelques exercices sur les suites

Quelques exercices sur les suites#

Rappel du cours#

Pour créer une liste avec une boucle, on procéde par accumulation :

liste_entiers = []
for i in range(10):
    liste_entiers= liste_entiers + [i]
liste_entiers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Pour créer une liste en compréhension, on utlise l’écriture suivante :

liste_entiers = [i for i in range(10)]
liste_entiers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Exercice 1#

Créer les listes PYTHON respectant les consignes suivantes, en utilisant impérativement une boucle :

  1. une liste contenant 10 zéros ;

  2. une liste contenant les nombres pairs de 0 à 50, une autre contenant les nombres impairs de 1 à 51 ;

  3. une liste contenant 20 nombres tirés aléatoirement entre 1 et 100 inclus (pour cela, vous importerez la fonction randrange() de la bibliothèque random : from random import randrange) ;

  4. une liste contenant les 15 premiers carrés parfaits ([1, 4, 9, 16, 25, ...]) ;

  5. une liste de 20 nombres alternant entre 0 et 1 ([0, 1, 0, 1, 0, ...]). Vous utiliserez pour cela la parité de l’indice de la boucle (la variable i de l’instruction for i in range(...)) ;

  6. une liste de 100 nombres alternant entre −1 et 1 ([1, -1, 1, -1, 1, ...]). Vous pourrez utiliser astucieusement l’indice de la boucle… mais il existe de nombreuses autres approches !

  7. une liste contenant l’ensemble des entiers relatifs compris entre −20 et 20, obligatoirement à l’aide de la boucle for i in range(1,21).

Exercice 2#

Reprendre l’exercice précédent en utilisant des listes en compréhension.

Exercice 3#

  1. Écrire une fonction minimum qui prend en paramètre une liste PYTHON de nombres et renvoie la valeur minimale de ces nombres. Vous n’utiliserez pas la fonction min de Python.

  2. Écrire une fonction position_minimum qui prend en paramètre une liste PYTHON de nombres et renvoie la position de la valeur minimale de ces nombres.

  3. Écrire une fonction positions_minimum qui prend en paramètre une liste PYTHON de nombres et renvoie une liste PYTHON contenant les positions de la valeur minimale de ces nombres (la liste pourra ne contenir qu’un seul élément si le minimum n’apparaît qu’une fois)

La cellule suivante vous permet de valider votre exercice.

assert minimum([3, 5, -9, -9, 4]) == -9, "/!\ minimum()"
assert position_minimum([3, 5, -9, -9, 4]) == 2, "/!\ position_minimum()"
assert positions_minimum([3, 5, -9,-9, 5]) == [2, 3], "/!\ positions_minimum()"
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[3], line 1
----> 1 assert minimum([3, 5, -9, -9, 4]) == -9, "/!\ minimum()"
      2 assert position_minimum([3, 5, -9, -9, 4]) == 2, "/!\ position_minimum()"
      3 assert positions_minimum([3, 5, -9,-9, 5]) == [2, 3], "/!\ positions_minimum()"

NameError: name 'minimum' is not defined

Aide : on pourra utiliser un variable nommée candidat_min qui sera initialisée au premier élément de la liste (bonus : indiquer pourquoi 0 n’est pas une bonne idée)

Exercice 4#

Reprendre l’exercice précédent en remplaçant minimum par maximum.

Vous penserez à compléter la cellule de validation de votre travail en remplaçant les … par du code.

assert ...

Exercice 5#

Écrire une fonction moyenne qui prend en paramètre une liste PYTHON de nombres et qui renvoie leur moyenne arithmétique.

assert moyenne([3, 5, -9, 2, 4]) == 1, "/!\ moyenne()"
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[5], line 1
----> 1 assert moyenne([3, 5, -9, 2, 4]) == 1, "/!\ moyenne()"

NameError: name 'moyenne' is not defined

Exercice 6#

Écrire une fonction moyenne_pondérée qui prend en paramètre deux listes PYTHON de nombres et qui renvoie la moyenne arithmétique avec les pondérations associées.

assert moyenne_pondérée([10, 16, 5], [1, 0.5, 2]) == 8.0, "/!\ moy_pond()"
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[6], line 1
----> 1 assert moyenne_pondérée([10, 16, 5], [1, 0.5, 2]) == 8.0, "/!\ moy_pond()"

NameError: name 'moyenne_pondérée' is not defined