Aller au contenu

Anniversaires

On dispose d'un dictionnaire Python dans lequel :

  • les clés sont les prénoms de différentes personnes. Il n'y a aucun prénom en double
  • les valeurs sont les mois de naissance de ces personnes stockées sous forme de nombres entiers (1 pour janvier, ... 12 pour décembre)

Par exemple :

🐍 Script Python
naissances = {'Nicolas': 10, 'Antoine': 7, 'Camille': 7}

Vous devez écrire une fonction anniversaires(naissances, mois) prenant en arguments le dictionnaire décrit ci-dessus ainsi qu'un numéro d'un mois et renvoyant une liste contenant les prénoms des personnes nées durant ce mois.

La liste renvoyée doit contenir les prénoms attendus dans un ordre quelconque.

Exemples
>>> anniversaires({'Nicolas': 10, 'Antoine': 7, 'Camille': 7}, 1)
[]
>>> anniversaires({'Nicolas': 10, 'Antoine': 7, 'Camille': 7}, 10)
['Nicolas']
>>> anniversaires({'Nicolas': 10, 'Antoine': 7, 'Camille': 7}, 7)
['Antoine', Camille]
>>> anniversaires({'Nicolas': 10, 'Antoine': 7, 'Camille': 7}, 13)
[]
>>> anniversaires({}, 1)
[]
Tests sur les résultats triés

En Python, la comparaison de listes prend compte de l'ordre des éléments. Ainsi, les listes [0, 1] et [1, 0] diffèrent, quand bien même elles contiennent les mêmes valeurs.

Afin de s'assurer que la liste renvoyée par la fonction anniversaires contient bien les éléments attendus sans avoir à leur imposer un ordre, on compare donc la version triée du résultat à la valeur attendue. Ceci explique les tests sous la forme assert sorted(anniversaires(naissances, mois)) == résultat_attendu.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
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 : 10/10
.9875.65038.128013bqO,vià3o_x;jlpw!f( g]6-)2Asç1ené4è[Em5tCLRPhk:c.a=ryDSIu/d050-0H0Q0!0i0q0E0w0Y0q0!0E0E0#010Q0i0r010406050E0+0O0O0!0$0%040)0l0q0+110l0I0w020!0O0r0o0w0T0H1b0$0e0+0H0E050,181a1c1e160r04051J1C1M0,1J160-0i0h0_0{0}0 0V0i0x0V0q1!0V0Q14050;0d0q0H1V0|0~011Z1#1%1#0Q1-1/1+0Q0$1K0Q0V0_1h0E0r0!0I0 0C011;1X010u0?0H0I1p0H1+27292e1?2h1/2k0O2m040c0w0U0$0l0r0l0E0i1k1m0/250$0$0H0Y2H1C2o0I1K0,232T2022211,0-2q0 1%0I2j2E1+1S1U0`1=2%0i2)0I0l2-1+0r2M1K2R2T2~17281m2/2f2@0$1b0q140G2Q3215312p341?3638140C3c293e2R2$013j0!39040k3n2S163q3h0 3t3v0K3y3p323r3E140P3H3A3J3C3s0l373u140z3H1N2|1C2-2W0-222#3R0Y2^2w0.1T1K2{0H2}3d3Y3,0/3@3g1W1?0W140/0u3Y3B3~0 0s140w443Q463s0u14290I1T0H0$0E0=2M1B1D3^452:0113040v4b3}4t0I142k0i0}290Y1A4y334d4v0g3H4a4s35140O0l4E4J3r4v0B0X3O0w4$4P4c4A140r4k0E1l2)0E0m4h4j4l4n0H4O3f4K4t0l140#4{4Q1?4v0M0y4#4%4|3r40040u3T524)4R043=2@0O5g4z2f0l48042=5n4}5i4D4F0I4H4p30530 4v4!4q3o064%5K4(5o3 140i435H2S5M5v3i4C0=5y5A4W3R555#4d4B5j2M5l5(4t4v575S045U3r4 040#515=5@3R5*4T4V5=5a5$145G2~5J5L6a645)4+4-4/1A4=0I4i0h4-4_5.5p140Z6o5W040!0r4,0I0-6s5E144x635D3s4+5,0l5m6E5h54140B584$6c4t5c2M0Q0+0$0I5u3K6e4l6g4;4?6l4^0i2M3O1C3`3?3Z6=0,3$1C0Q3(6`2Z2U0!1.6@3$1I3|5V0 2M0O0m0u0!0W0H0m0V0k141u1w1y1A0w673^1P3e1J0S1:2{0l1.0L2v0w2M0h0i2j0Q0w0j0w2s204k0w1/0^0`0J0^0-000+2I0i2O0i4/4_0w0E0H0q1l0w7U0_0$2G0L2M0w2D0$0;0I7F180$7M7m0h3u0H6X0E6r7q740f1m2{7Q7E1:0Y0i0A0/0}0l0+7R5Q0u0J5,0Q7m4.1i2H0^280$3,6X297F1/0w1S7X7Z6-1:2J7b0F1l8j0u8l8n7m0=0I2F0w1y7T2)8B4k4i7/1:0O0J233-7;1i0^2g1l8D6j7%1~831Q050V0G0w0i0-0 0H0n0r1%0Y0!2H8e0H0A0{0A8q1j7Y5*0N9092949d8X7M0!7#1h9c1l059m3R0V0H0!0/0$2(400w0V2M0u0 038 917W9i1l96980!9a9o2H2d110Q1/0 0U4k1b2?8z2=5c0a0b1C0!2T8_7r04868B0J0d1j7u1c9l7,0J9K2I8V1:1%0E8o0w0!0%8y0w0h0l932H7G257^2j6-7|7;0$0J5l8X8t6f8:7R1l8z006*6m8F0w0Q6J0da08#4U8t1=0J0w2ja40$0x197E0w0v1`8W0C0B8?9.0N8R0+2G1:7)8u8w7?7|7O0q7Q8B0+8B7W2H4D7:aJ7b4Ea7056;3r1^1$1(1*755b145e0$6!5 6H2*6K2~5~4d5q5P6Z5}6S5w5Y4m5z4I6L5N6B047o3o6:3-5?aQ1!8W0kaU0w0R8;1A0A8c0w8%a78fajal6J7R7uap4:0g9`7~7-708Aa%8h0$a75A1Va-1A7F2k6W2M0q1/2v7^0w5l8$1:a|bx5k6Jbw3{aV740Ub$0_0V0!7lb*bV7)8oa21:8S0{a87 6Xa48g8c0J1:aQaD4E9k5xbn4H0BaIa2bK0x7 a4a/61aF0}aHaJ1caMb?7Fbz0x8W0KbD0)0i0_00b,ai930Ecb1m0!0p8ha3b!akam2Jch4,6%8:adcha1a3bNak180q0;0Q0^cO8W0PaU1NaW0I2h0Ic#7A2ja97D9`c^8G7mc:4.aq8Bas7Mau6j4@4max3,2L1A2D6yc28^8`8|0 0!1j4o0A2v8(8f9Mb#818e7U8ea;9da?2w0DdF7m8$dJ7m2JdM4l8B8Va:8/dT9ra~9v9x9z2d9C0H9E0103dE7K0EdH0:0V3-d}0/0Ad$e2dP8Ca=4_9S2G9V019X3U9!7M9$149(9*9,0G9.0*0qcy7FdE0}cU2Dev719kd$ah7Nb*7Rd)e8dS7!a^5Ya{a}9t1(1`1)2n6M0 5cb6b86d5+bbeX4~5r5tbj6F5*cu4Gbp5CeT015_83e/br6G047d0%5B4re:4v0v4Z3Y0,6;040Z0w7tdbcea.252J8W0Yc70I0x9^82d51R1Ta~ePb1eSe^2s2j2l142y0)0Y7-0r7F0U0%8(bi303=752 3^f5bk5O04426A015r4abq764e4gdq6+ds4ofSf0fSe+bme-e}bv6F4Me#5icFf(6Obu3z5KfO3D6$dk4:6i6kaw6.e)e:5_5|bdf}4u14566Qbe6Tb55fg6e^5*b~bc3dgg5pe%fHgpgbf+4Ecve.e~e^e=f*14e{f.2Sgbf0f25=696b6F5c5Qf=6te,bogGb365040MgDeZ5-fW4X145;ga6Fg8g9gue*4SaEf^btgf6a6Rg:5jbT6hav6,g5e@fXgCg%b96u6w2j6zh54L6Cg!gng?6PgLf|gO146V6Xgt3ogq6tdj6(g2dr6ngLc06@fJ3#3:74aXd8bV7Udh6Y0i8!0wdYe0d#2B3=cD0nd*e98Fao370:eA1ca(ah1S2M2O1vaOeD8w917mb|3{0v0`0HbV7~1/6Xhhf5f79:a_et7(d%h;8b4da eQb2gbeVgjg+e:gm6Igof/e 144NgkfXgw5Z4`in5^gsgRf~04gT5!hb4~6qg!a!0OgVgI6CgK30f4bxf7f9cd7F1ycU182Gesa4i38t8+ei2F71dz2-fp1_frgW4dfu2u2wfyfA12fDfFe0hogHhAiK30fNhkfQd@fSfUf*4f6uf!g4gzije^f)iAblgxf-g?imieglg;62h2g(04iJ3dgMhqiwhsaqhuf#hwjkh350ivgcgYg*jshje:icb7ish6hfje6N04jjg/ifjm4;iyirjBitbhjEipgyiGg,iCjQiwiEj*ik4wjr5Ig_ju01gP5Rj!h6cF0mjYjEg-j%jWg?f`15j^jJjlg|c;g1g f$jZgAjCf6g!6v6xhajogX6DkpeYjPks5/6Ogfibhl0:hnk4kcg0g~j8h0kh5Ihy2ThA6^hCdA8{8}012j0AhH98bA2waX7*8WaR1:0td-9td/4kd;9B9D9FkUkWk%eb9U0H9W9Y29h,ej04el0,9+1C9-fn2.i7fq1{fsfXi.fw2x0wfzfBi@fG3Yi|7pi~bxkzj1j|ki3rj4j-fYj7g3kIj:jchdlwj(jhlwf;jNeYf@lHf_kyj0hm6YjE5%lEbag$j}4djLkDkujUgBiulJ4*ixf,gUjEj{kDjYlBfXlTkv5il#jbl?g)k250g.hpgvk5lM04jHkKiL3{6?2T731L040(297O0:a3hN3-dafAcok#a04Ea38u251qak9u8R9jd$a7h-8hh/0^i54wh@h_cj0$h}bxmu7z0-mg9`mkhP0J0Y0J0/afaI7FiPa70i1amX0i94h+b@chh`8|2GaH0-cEaEctl,4Hdz1J9:b%h8b;1:c9ch3,5z4E9j7S7+a}0IcWcz280^b6mWcM7#kY9k1y3um=0w0t0w9:4,1j7;4k0-a@1ma10i0d0?m=dz6^0:0=0@04.