Recadrer les mesures d'une liste⚓︎
Lorsqu'on utilise une sonde pour obtenir des mesures, par exemple des températures, il se peut que des mesures soient trop petites ou trop grandes. On modifie alors ces mesures pour qu'elles ne sortent pas de l'intervalle défini à l'avance.
On donne une liste de réels mesures
et deux réels val_min
et val_max
. On garantit que val_min
est inférieur à val_max
.
Compléter le code de la fonction recadre
qui :
- prend en paramètres une liste
de nombres
mesureset les nombres
val_minet
val_max` , - modifie la liste
mesures
de sorte que :- tous les éléments de
mesures
qui sont strictement inférieurs àval_min
sont remplacés parval_min
, - tous les éléments de
mesures
qui sont strictement supérieurs àval_max
sont remplacés parval_max
.
- tous les éléments de
Cette fonction modifie en place le tableau mesures
et ne renvoie rien.
Exemples
Filtrer une liste⚓︎
On considère dans cet exercice les fonctions booléennes suivantes prenant toutes en paramètre un nombre entier :
Fonction | Rôle | Exemple |
---|---|---|
est_positif |
Renvoie True si cet entier est strictement positif, False sinon |
est_positif(9) est évalué à True |
est_pair |
Renvoie True si cet entier est pair, False sinon |
est_pair(9) est évalué à False |
est_impair |
Renvoie True si cet entier est impair, False sinon |
est_impair(9) est évalué à True |
est_premier |
Renvoie True si cet entier est premier, False sinon |
est_premier(9) est évalué à False |
Ces différentes fonctions sont déjà chargées dans l'éditeur. Il est inutile de les importer.
Codes des fonctions booléennes utilisées
def est_positif(x):
return x > 0
def est_pair(x):
return x % 2 == 0
def est_impair(x):
return x % 2 != 0
def est_premier(n):
if n < 2:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d = d + 1
return True
On signale que la fonction est_premier
est très rudimentaire et sera peu efficace pour tester la primalité de grands nombres.
Elle reste toutefois fonctionnelle dans le cadre des valeurs testées dans cet exercice.
On cherche dans cet exercice à filtrer des listes de nombres entiers en utilisant ces fonctions.
Si l'on considère par exemple la liste nombres = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
alors :
-
les entiers strictement positifs dans
nombres
sont :[1, 2, 3, 4, 5, 6, 7, 8, 9]
; -
les entiers pairs dans
nombres
sont :[1, 2, 3, 4, 5, 6, 7, 8, 9]
; - les entiers impairs dans
nombres
sont :[1, 2, 3, 4, 5, 6, 7, 8, 9]
; - les entiers premiers dans
nombres
sont :[2, 3, 5, 7]
.
Écrire la fonction filtre
qui prend en paramètres une fonction booléenne f
parmi celles citées plus haut et une liste de nombres entiers nombres
et renvoie la liste des valeurs x
de nombres
pour lesquelles f(x)
est évalué à True
.
Contraintes
La liste nombres
ne doit pas être modifiée.
Les valeurs seront renvoyées dans l'ordre dans lequel elles apparaissent dans nombres
.
Exemples
# Tests
(insensible à la casse)(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)