Aller au contenu

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 nombresmesureset les nombresval_minetval_max` ,
  • modifie la liste mesures de sorte que :
    • tous les éléments de mesures qui sont strictement inférieurs à val_min sont remplacés par val_min,
    • tous les éléments de mesures qui sont strictement supérieurs à val_max sont remplacés par val_max.

Cette fonction modifie en place le tableau mesures et ne renvoie rien.

Exemples
>>> mesures_1 = [1, 2, 3, 4, 5, 6]
>>> recadre(mesures_1, 3, 5)
>>> mesures_1
[3, 3, 3, 4, 5, 5]
>>> mesures_2 = [7.1, -9.0, -3.1, 15.0, 987.7, -624.89]
>>> recadre(mesures_2, -5.3, 15.0)
>>> mesures_2
[7.1, -5.3, -3.1, 15.0, 15.0, -5.3]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013kp;n(=x32v[fah1:-tS6dm]P)cu_swl,4obiery5g/ 050v0L0s0n0K0F0D0R0A0F0n0D0D0g010s0K0c010406050D0B0w0w0n0M0N040t0I0F0B0,0I0e050Q0?0^0`0|0;0c04051c151f0Q1c0;0v0K0k0!0$0(0*0$0e0P0B0n0P0L0r0c0N0s0o130R0o0K0P0o0F1H0o0s0/050V0J0F0L1o0%0)011G1I1K1I0s1Q1S1O0s0M1d1C0!0 0D0c0n0e0*0j011U1q010m0X0L0e0n0w0L1O1:1=1`1W1}1S20220/0a0R0y0M0I0c0I0D0K120e0R0T1.0M0M0L0A2n15250e1d0Q1C2A1*1,1+1P0v271r0K0e1 2k1O1l1n0#1V2K2M0e0I2Q1O0c2t1d2y2A2%0=1;2o2S1{2W0M0_0F1O0n1F2t0m0*030C0C0A2X0L1K2V0I0r0p350/0p150n2(2+0:2*262-1W2/2;2?2^0L2`012|2~30322N350r1^040j3a3c1=3e2y2J013j0n2=1d2@0o2_2{2}2 0T3t2W3v0i0/0i3A2x3d0;3E3h0*3H3J053L3N3p3P3s2L3u360H0/0H3Y163!3f2,1p3i0I2:3I3l3M3n3O3r3R3;3T360O0/0O3`2%3#2+3F3)443-3q3Q314a34360u0/0u4g3d1g2#152Q2D0v1,2I3%014p2P1m1d2!0L2$4y3{3C054p4P260K0v0*2}2y3v0p3l4X4Z484q334$1_2b0L4*4p3S4s372A3b3}3F0b0/0T0m3Z3C0R4|4H0e0m0/2t0A0n0v2t522z553 0*0.040f5f4V3~2T3G0/220?2t0D5n5h5q5k0G5n543$5i5r040k3I0C0w2L5x5E5z0/5B4R2z5D4j560/5I0F5K0n0h5N5V5F5k0z0q5n0;5S5o0R4)014!2+3v3x3+5;4Y5?4+4@5_4/214;5~4?4r614`040R6b5U3g5F4~040m415C5y2.0/0K6k5O1{0I0E6n145/6d5p2.0J591=1x5%6e5P5l6E6y3i6A042a6I3F5k5m5/6l3i5s0L5u6W6O4H5*5+5-6O5=5@1=3U4(5}3/494-363V0R4:4=3:6;0r3V696c6 6x4}6n516w6T3(6V6X5w6S6q1W5k0l6Z5F0e6n7g6G0x6p5(5q0I0/020F0s0d7n6F6m5H5J5L6v2)7c5j0/5,5/5.7D4j6)0C4#3?6-6_6:3=0r3@6@637R4,7T3@6~707%765G5t0B5v7k1{7e7.6U046o7b7o7/0/7m757E017q040g7w6J777z5Z7B6%7^4W6.7N5^4c7Q656`7T4d7W227Y608f7$7(7~6g4q742%715W047+7-8a84017:8C4k7j8G6!7{833F80020P7u8M8y5Y5!5$8J5)7G897K8b4*7O0r4u3K5|8n674t628m8h7S4b8)1O0Q3b7%8r7_7=8A6Y8X6G7f927y7@8#8D5k7|8w7)80827}8~858U0_8W4h5x0Q4U4z4O4B4L150s4E9u2G2B0n1R9r0Q4C5.0T0V0X0D04.

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
Python
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
>>> nombres = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> filtre(est_positif, nombres)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> filtre(est_pair, nombres)
[0, 2, 4, 6, 8]
>>> filtre(est_impair, nombres)
[1, 3, 5, 7, 9]
>>> filtre(est_premier, nombres)
[2, 3, 5, 7]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013kpn(=x2v[fah1:-tSdm]P)cu_swl,4obieryg/ 050s0I0q0l0H0C0A0N0x0C0l0A0A0f010q0H0c010406050A0y0t0t0l0J0K040r0F0C0y0(0F0d050M0/0;0?0^0-0c040518111b0M180-0s0H0i0W0Y0!0$0Y0d0L0y0l0L0I0p0c0K0q0m0 0N0m0H0L0m0C1D0m0q0+050R0G0C0I1k0Z0#011C1E1G1E0q1M1O1K0q0J191y0W0{0A0c0l0d0$0h011Q1m010k0T0I0d0l0t0I1K1,1.1?1S1_1O1|1~0+0a0N0v0J0F0c0F0A0H0~0d0N0P1*0J0J0I0x2j11210d190M1y2w1$1(1%1L0s231n0H0d1{2g1K1h1j0X1R2G2I0d0F2M1K0c2p192u2w2Z0.1-2k2O1@2S0J0=0C1K0l1B2p0k0$030z0z0x2T0I1G2R0F0p0E0p0n0+0n110l2!2%0,2$222)1S2+2-2/2;0I2?012^2`2|2~2J310p1;040h37391.2w2W0I2w2M2z0s1(2E3e0$2{0P2L1i193B2Y3a2t3S3L3C3c2k0H0s0$2_2u3s34192:3Z3#3o0P3q2S3(1=270I3-3V3:30323)3x3X2F010b0+0P0k3T3z0N403J010d0k0+251$0I472v4a1l1S0*040e4j3R3d4m0$0d4f4r4l2P014o0D4r492u414w042S0t0G2p0A4y4G4b4o0w0o4r0-123S4G3,013$2%3s3u053+3!4#3.2}2H3r321;0N3@3_3p4:3;4=1K0M380N514F2%4143042p0q0y0J104X484z1@4o0j4P544b4I0g4E5f1S560k0F0J5o4Q4u4c0+5n5d2v534t4A0F0B0+2H5v5k5x4I4K4M0I4O5B045D2(5x560H465S5U4H4x5S5p0$4o4q5(5w4A5m5j5E5g0+0w0u4V4y0M3V3A2X113E110q3G622C2x0l1N3W0M3E4W0P0R0T0A04.