moyen
Autour de la programmation fonctionnelle
En programmation fonctionnelle, il existe des fonctions qui permettent de parcourir un itérable (liste, tuple, chaîne de caractères...) : map et filter .
Ces fonctions sont des fonctions d'ordre supérieur , c'est-à-dire qu'elles prennent une fonction en paramètre.
Fonction map
La fonction map permet d'appliquer une fonction à tous les éléments d'un itérable.
Dans l'exemple ci-dessous, on élève les éléments de nombres au carré.
def carre ( x ):
return x ** 2
nombres = [ 1 , 2 , 3 , 4 , 5 ]
resultat = map ( carre , nombres )
Attention : la fonction map renvoie un objet de type map . Dans tout cet exercice, on convertira cet objet en un objet de type list .
>>> resultat
<map object at 0x000002274B1BBF70>
>>> list ( resultat )
[1, 4, 9, 16, 25]
Fonction filter
La fonction filter permet de sélectionner certains éléments d'un itérable. Si la fonction passée en paramètre renvoie True lorsqu'on lui fournit un élément, celui-ci est sélectionné. Si elle renvoie False , il n'est pas sélectionné.
Dans l'exemple ci-dessous, on sélectionne les éléments pairs de nombres.
def est_pair ( n ):
return n % 2 == 0
>>> nombres = [ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> list ( filter ( est_pair , nombres ))
[2, 4, 6]
1. Définir des fonctions
Nous allons tout d'abord définir des fonctions que l'on pourra ensuite utiliser en paramètres des fonctions map et filter .
Compléter les fonctions suivantes :
.128013nFmwgPoC,6uRèa8bsrvce!-1S9_d(Kxiyk02; 5+l4t/E.3)Afh:=êé7qDp050C0v0R0o0G0P0r0M0u0P0o0r0r0#010R0G0+010406050r0l0d0d0o0s0H040z0h0P0l0 0h0b0M020o0d0+0L0M0m0v190s0)0l0v0r050S16181a1c140+041A1H051K0S1K1M1H140C0G0t0@0_0{0}0Z0G0f0Z0P1!0Z0R12050/0q0P0v1V0`0|011Z1#1%1#0R1-1/1+0R0q0h0C1c1,0s1I0R0Z0@1f0r0+0o0b0}0K011;1X010Y0;0v0b1n0v1+2c2e2j1?2m1/2p0d2r040a0M0g0s0h0+0h0r0G1i1k0-2a0s0s0v0u2M1A2t0b1I0S282Y0R2625270C2v0}1%0b2o2J1+1S1U0^1=2,0G2.0b221T1+0+2R1I2W2Y33152d1k2@2k2|0s190P120M0y2V3713362u391?3b3d3f0K3i2e3k2W2+013p0o3e040M0V3t2X143w3n0}3z3B0M0Q3F3v373x3L3f0N3P3H3R3J3y0h3c3A3f0k3W3l381W3o3#3q3C0(3*3I3-3K3/3%3C0p3?3Y3^3!3$3M0A3~3m403T040y0J453,2^413:0y3h1B3j3X464e480y3s4j3u4l4d3a3`3B0y3E4r3G3+3S4w120y3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0y444*4K3.4S0K4b4I1J311A2=2#0C2)3x0u222B0,1T1I300v323j3P05520-5a4;0}0I120-0Y5c4#2k0e3f5n4+3a0Y121y0R0B2I2K0 5m4_5o1?11040D5s5h3y120o5K4u5G120W0!4c3x5q3C0M5Z5P3x0r0C12015*0M0c1j2T0G1j0M1w0G0M0C0%0R0v3c2`1:2K0M0l1k2|0d0q2R0M5x0M0r2$0G2T1t2o0R0M5A2L0G0Y0M5*013W5Z5!5F5i122R0R0l0s0b3P0M4W475N6B6D4e0h12020f0R0L6G6t010d0G124^33064Q3Z5j045l5#3Z5X6C5E5t3o5v045x0B1/1|2R0B0T6%405H5J6+5L0b120u6`4e5H5T5V6(3f6r732k5%5)5+5-0b5/5;5?5^5`5|6S2.6a5@620@1a0o2T0n67691/7t0s7v0R7x1:000T006n5*6q7a6Q6!6w6y6A4I6C6Q7004727T6H2k6J040#0#6P6,0}0r2h04010T6p4P6Y406!6$6~5Q0}6)7b6-5w6b0B2|0b830l0P7 0}6|895M045O7{3x755U4:7|016)7a8g3Z7d7/7f5.2M5=0l5@5_5{5}7p607s64661:691S0Y0Y0%2R0b6h2O0J7K7=6W6r7U7+017P0.7R7*6 6F7Z6Q7$0w7)8)8X6S6U3W7@4e7_0v5D356Q7~8p476.2o0B7o0l0r0u870v8c8b8~4n71995S8j6W7!1?8n5!9b7c5(8s2i7g7i1k7k8N0t0h0G1:0_0M9395975^0l7B7D7F6i1=0%681k2d7C0d0n2$1:6o7M6s8X8Z6x6z8$8l0b0q710Z0s9e5I8c9(123#0C9-6}8{8X7W7Y9_5L759$3x7$0Oa03Z8:040V4q9}8l9 7?9i6u6#8_8c8}aa3S90850I0v0P0t2`9@9/71ap2K949-768k5W799lak8q9o6o5,8u5:9t8x6i8N2*2o9K9Q9S67621:5{1o8M0o9!1:0o9G0-6S0x0-0f0s9M300n0?77408r8V0.0M9v9x9z0o0M0t3A0v6y5^a 0MaY0+a!a$680F300G0d0%8H1k0Eapar1k9V4P8Vae8Y6v8!9#8.8%7Xaw0Gaybx8la2a4400d6.0K0(0V0U0y4O9h0S5e594`bT0S4}1A0R4 bY2%2Z21232#0o1.bV4}1G5g8l2R0d0B0Y0oao0B0Z0V121s1u1w1y0M9g5b1N3k1H0X1|6gaLc30M9A0YaK5;5d536/anbmasbRcka|0%3A0G0r1:aW0M2Hbbcc6g670Y0P0h1|2e0R0r0U0M0*9Gb^2Lb6ceb02R300%cv8Oa#cc0-0?8F2R0?cEcG0/8O0?9PcS9B7v1Z2.0jce1:a/160P0/6h0h0q5{0b9G0+b46h0b000$9T8w00cxb21/b50o0+300h0u0Zbi9Fcrc|c~0Ma#d20C0l0U1J3k2=3x1^1$1(1*b:3x2x2o2q122D0i1j0r1f1:0g0H281j5c58b:345bbSdH3Z0f5H6L6Nd+0Ld-6*aF6Ecl0Baoaqcod;74129^5b6QbI6U0Ua9d 8Xac9h6Q0f7$bKbM0V0Q0Aegehei0A4ZbQd$bU2Yb.4|0.0:0=04.
Indice fonction minuscule
La fonction chr renvoie le caractère associé à une valeur Unicode.
La fonction ord renvoie la valeur Unicode associée à un caractère.
Dans le système Unicode, une majuscule et sa minuscule sont séparées de \(32\) caractères.
Indice fonction kelvin
On convertit des températures exprimées en degrés Celsius vers les degrés Kelvin en ajoutant \(273,15\) .
2. Utiliser map et filter
A partir des fonctions définies précédemment (déjà chargées en mémoire) et des fonctions map et filter , compléter les requêtes suivantes :
.128013nTm%OwgPoC,*6]uRèa8bsr[vce-1S9_d(Lxiyk02; 5MlI4t/E.3)Afh:=êé7qNp050G0A0W0s0K0T0v0Q0z0T0s0v0v0*010W0K0:010406050v0p0d0d0s0w0L040D0j0T0p140j0b0Q020s0d0:0P0Q0q0A1e0w0.0p0A0v050X1b1d1f1h190:041F1M051P0X1P1R1M190G0K0y0|0~10120(0K0h0(0T1)0(0W17050@0u0T0A1!0 11011(1*1,1*0W1=1@1:0W0u0j0G1h1;0w1N0W0(0|1k0v0:0s0b120O011_1$010%0_0A0b1s0A1:2h2j2o1{2r1@2u0d2w040a0Q0i0w0j0:0j0v0K1n1p0=2f0w0w0A0z2R1F2y0b1N0X2d2%0W2b2a2c0G2A121,0b2t2O1:1X1Z0}1`2;0K2?0b271Y1:0:2W1N2#2%381a2i1p2|2p310w1e0T170Q0C2!3c183b2z3e1{3g3i3k0O3n2j3p2#2:013u0s3j040Q0!3y2$193B3s123E3G0Q0V3K3A3c3C3Q3k0R3U3M3W3O3D0j3h3F3k0n3#3q3d1#3t3*3v3H0-3/3N3=3P3@3,3H0t3{3%3}3)3+3R0E433r453Y040C0N4a3;2}463^0C3m1G3o3$4b4j4d0C3x4o3z4q4i3f3 3G0C3J4w3L3:3X4B170C3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424N1O361F2`2*0G2.3C0z272G0;1Y1N350A373o3U054{0=534P3t170W1y0:0A0w0s0W0p2W1E4N0Q4#450j170*3U5o4*2p16040x555w1{0d0K4K5B444j5y0l5u5p4j5r040B5H5a125E174T3a5C125K5M5Z015V044g4/5%5#5n5N2p5)4v5Y5I5x175L5/5%5)4u5S4z1{5.385v5^5D5F044M5@5T01633o656c5P5R5,665U684Z6b615!5`5$6l5(684(6p3C6e3z6g6q6v17496k6c6A2$6C3C5~4n6y3(6J3H5:1{6i606M686G6P455y0o3#4V3(0z0C17030Q0I0K0v5d0Q0=0{5d1t5g5i5k1D0Q2N2P140y1D4h3X172W1B0?0A0F6O6f6T125P5t5|6u0b0u171,6=6W6Q170H7r4c7n042C5d0w7v5J7t7C3f171D0W0F712Q0K0%7F626s7k6c0b5c5e6|5j5l7P6r040#0#6(7g016+6-6/6;6?6^0Q6`5f5h7Y6 0A0J350K0d0,7`1p0M0A0T0y2 764$780A7a5d0F5?7f5%7i6t7T7x7p0W7!6d7E6H6D7m171e0:8o5y7u8r77042t0F8385878A7s045{647*7U047?7X6~5m6!7D7$7(4U6)457,046.0/0j0d0u2W6@6 7?0,7^8S0Q311p0b0p0T1@8T4p8N8a8c7c4E8M8h5s8j8s8l2t8x8q8U3f8l7/9b048z9d3t7x7z5g9h9j545%8O7I0F8@9v8`9h8L8g7l7V6{8;7Z8I6#177%8X38068Z4s7V0J5d973C8i7S6D0v2m04010k0f0S0i0I0Y0S0Y0/0c0D017)5%8#6.6:6=1^7;1@215l2f0b740w14810Q5E8_0v0z8`0A884c901C8d6a9B6h969W3X9f7q9H8V9q3z8N7x8v9p8o9t0b0Fa70pa9ab9z9T898P7{9Saq5_8W9=6u9@0Q8(8*8,9|0?2+6 0Y6@2j0{0~0|0(0^2?8-0|1f0s2Y0r9G9M8 0479ag7c5Xaj6D9V947l990baxaM9l7o9gb67#as2$au179n7Bba8p9iay7H6=0F9}aY0F0YaGamaI5d9Racbi5y9K3/0X57524:bF0X4?1F0W4^bK2,2(26282*0s1?bH4?1L596D2W0d0F0%0s830F0(0!171x1z7a0{0)551S3p1M0U0T0Q7I0Q0,0h3F1y2t0W702O2PbU6@001m0_6;5g8-0{1a2+1o0h7y1o2Y0K1o0{2j1o0L2F8Tci0bck0Z1Ob^040i1fb|0J5e1@0l0Qa(0%cm2R5obE8Cbn7L147ObD4|3H0v000,0z0w2Q0Q3F3*cgbE3C1}1+1-1/bY3C0M7o1s0u0G0saHae04c}bz17b=buc d1b1ak04020h0W0Pc~4j5)5+3acW58b|c4a(a`0+6?0CcP4|c.1-1 1.2x9Ca_8ba{7ddf2pb0a~anb8ap9kbbay9m0_7Ab5dM01c^040~8*c|dF5bd09hd4d88s17d7dI3(5Pdbddd!6m17di9r6u6R6Lbv7W9F75d2aO4/dk52czb@bX0Y0b2r0bcJ1oc55k5h8?0j7AcK1^2i5h8{0r1@c)740zela%7/a54{1t0w0,0(2t2P1o0Z0Q0$2 2PcJ8|a06=0w0pcncp0|0K0B6^0v0jaD0QeY0bc40,1B1Yc1e%6 d41V4~2{45c/dxc=1Q4;dj3acQa^31aUe0d)9Ualf38J5Abi5~btf6455=fbd-fd6893d_6I7Rfcdg68aiat5-fmfgfo5W9h6%8Y7*9@0BfCfDfEfFfGfHfCad4jaR0$eta60s8w4)aQ6,8$fIfWfXfDaP6cdV0=cVdT0g3kay0%170z1f2WdSfkd*040J9h0#d(4p0Qf~d|45dV2W7Yb4d59Pf^8o5P0m0m8ofefz9s8a1b0T0@7Jawg6dGf5fu9edK8ne1bcc?4$avfQf=frdAf/2VbydTd{e 8)8+f2f?6z9J9L4p9O2pfBfYgUfGfKgSfU6.fN2X0Q0pa,8m1^2t2feAeCeEcog5a@9?gZgVg_fZgfdA5l8`gk0Fez35d=01dH6B7*5yf8dT8OgDf;gublg8e1gPh75%dVcMbhfn7Ghhhp6Uf*048Hhs3P17f0gK8}gBfl04fya@e42%512%bWe;dv1~c;34e{544/e~gg04hAa?gq6Ugphkd`17hagM3(fae19Ah%6cgegGfth:6D5)fjhD6DgH5}fpffh^6Xfwe1hGgQfAg^g`g_gX1{fMfObgic12gTiagUf!6Df$0Af(h+45hu5obieabm7J2i0Khoirarhgg=iCaNf{3#f g04jg20?5kiFi2aIiQ6K7*5P0eh4h=h!7h5s7jhx6E5*im8Bg~gj5iaBgzgnh#04i%i!3Daogth?bkivdPgj9ohfivix7K0^iBh|gN8Kh48OhYgLj98J7%i+6*i9ikfYih7+gZeIfOg(1^g*b|3d8)35g/0beFiT4O6DijjmfWjjc i-h0h2j8iU95i@h4h9hgf_i=12hm3*jc17jVi(0jhuhwi_jdgJhZiRg1177Nj!cRiyj7gAbdhWj$iG7Q7$i64x1Fe~1S4;bI4 19bI0?0^0`04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)