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 :
une liste contenant 10 zéros ;
une liste contenant les nombres pairs de 0 à 50, une autre contenant les nombres impairs de 1 à 51 ;
une liste contenant 20 nombres tirés aléatoirement entre 1 et 100 inclus (pour cela, vous importerez la fonction
randrange()
de la bibliothèquerandom
:from random import randrange
) ;une liste contenant les 15 premiers carrés parfaits (
[1, 4, 9, 16, 25, ...]
) ;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 variablei
de l’instructionfor i in range(...)
) ;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 !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#
É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 fonctionmin
de Python.É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.É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