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)
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
.65038.9875.128013lS]et-dA5!f1umaèg,_/çR=in 6)yàqPhcDL[(bEsx.p;r4j'C"ovw3Ok:é 2I030d0a0b0l0u070L0'0E070l0L0L0t0V0b0u0O0V020w030L0j0k0k0l0Q0z02080W070j0}0W0v0'000l0k0O0P0'0s0a170Q0B0j0a0L030q1416181a120O02031F1y1I0q1F120d0u0X0=0@0_0{0D0u0n0D071W0D0b10030-0J070a1R0^0`0V1V1X1Z1X0b1(1*1%0b0Q1G0b0D0=1d0L0O0l0v0{0(0V1,1T0V0h0/0a0v1l0a1%2224291.2c1*2f0k2h02060'0C0Q0W0O0W0L0u1g1i0+200Q0Q0a0E2C1y2j0v1G0q1~2O1{1}1|1'0d2l0{1Z0v2e2z1%1O1Q0?1-2Y0u2!0v0W2'1%0O2H1G2M2O2^13231i2)2a2.0Q1707100i2L2|112{2k2~1.3032100(3624382M2X0V3d0l33020Z3h2N123k3b0{3n3p0R3s3j2|3l3y100f3B3u3D3w3m0W313o100x3B1J2?1y2'2R0d1}2W3L0E2/2r0*1P1G2=0a2@373S3$0+3-3a1S1.0#100+0h3B0'392}3@3x0h10240v1P0a0Q0L0.2H1x1z3.3v410V0 020I3S4g2*3m102f0u0_240E1w4m3K4h4j0o3}3 3E100k0W4s4x3?4o4j0y0$3I0'4Q3~4n2 100O480L1h2!0L0p4547494b0a4C4T1.0W100t4+4y4L100H094P4R4D3L3_020h3N4;4K4U023+2.0k52404o0W0Y102,594E024r4t0v4v4d2`4,0{4j4O4e3i0w4R5w4S4=2a4~0u3|5t2N5y533c4q0.5k5m4J5a2a4j0H5N5h560W585E3=5O1.4j4_5X5G5Z0{4.020t4:5%4|4h0v4F4H5n4f5z5!105s2^5v5x5 5/4o5;554X4Z1w4$0v460X4X4)5S3L5*0N6e5:440O4W0v0d6i4?4k6p545U5W5o5_5q100y4`4Q615A102H0b0j0Q0v5g3L634W49664#4%6b4(0u2H3I1y3:3,3T6!0q3W1y0b3Y6(2U2P0l1)6$3W1E5Y3l2H0k0p0h0l0#0a0p0D0Z101q1s1u1w0'5|3.1L381F0G1+2=0W1)0m2q0'2H0X0u2e0b0'0A0'2n1{480'1*0;0?0%0;0d0T0j2D0u2J0u4Z4)0'0L0a071h0'7E0=0Q2B0m2H0'2y0Q0-0v7p140Q7w760X3o0a6I0L6h7a6=0!1i2=7A7o1+0E0u0c0+0_0W0j7B5C0h0%2H7#764Y1e2C0;230Q3$6I247p1*0'1O7H7J6V1+2E6{0r1h820h84860b760.0v2A0'1u7D2!8k48467V1+0k0%1~3%7X1e0;2b1h8m697N1_7/1M030D0i0'0u0d0{0a0M0O1Z0E0l2C7}0a0c0@0c891f7I630K8,8.8:8|8H7w0l7L1d8{1h03953L0D0a0l0+0Q2Z3_0'0D2H0h0{018+8-7G911h8=8@0l8_972C280}0b1*0{0C48172-8i2,4~05041y0l2O8$7b027=8k0%0J1f7e18947S0%9t2D8F1+1Z0L8y0'0l0z8h0'0X0W8/2C7q2087467'8j7@578H8c658W7B1h8i0T6S6c8o0'0b5V0J9+8L5?7X1-0%0'2e9/0Q0n157o0'0I1=8G0(0y8Z9T0K8B0j2B1+7P8d8f7Z7(7y077A8k0j8k7G2C4r7Wap6{4s9=036Z3l1:1Y1!1$6?4}10500Q6L6j55865Va:5b5d025f5.5p4p5i5K4a5l4w5X6D5`02783i6Y3%02avax1+0ZaA0'0U8X1w0c7{0'8N9=7~7X0Q0%577B7ea54!0o9$7*7T6.a018aK9=5m1RaP1w7p2f6H2H071*2q7#0'578M1+a#bc6ubb3;aB6=0C807'0E0D0l75bLbB7P8y9-1+8C0@9?7+6I9/7 7{0%1+awaj4s935jb24v0yao9-bp0n7+9/aR4Gc6230_anap18asbU7paw1W8G0Rbi080u0=0TbN7(0=0^b=1i0l0S809.a0bua22Eb{6O4Y8W9{b{9,9.bsbu14070-0b0;ct0n8G0faA1JaC0v2c0vcG7k2e9@7n9$cW8p76cR6Q8ka87waa694'4aad3$2G1w2y6nb(8#8%8(0{0l1f4c0c2q8O7~9vaJb+0L7}7E7}aT8|aV2r0edj768Mdn762Edq7-8k8FaS8Vdy9aa%9e9g9i289l0a9n0V01di7udsdm0D3%ds0+0cdH49dt0vdvdM4)9B2B9E0V9G3O9J7w9L109N9P9R0i9T0)07cc7pdi0_cz2ye96/93d+6VaMbL7BdK8laU7KaX5Ka!a$9c1!1=1#2i6x0V4~a.a^6ta?6v375'3l5c5e6Ka}ex63c84ub46w5H5)107/eR5(a 6}0z5@baa~4j0I4N3S0q6Z020N0'7dc?b^aQ202E8Gb-240n9!7.c-1N1Pa%eta)eweS2b2d2p2r2t080E7T0O7p0C0z8OeK2`3+5Y2_3.e,b60{4~3{eB3c4302ab6U4c6sb74lb5a~eNb1ePe#2Nfr4i104BeLf663cjfKa+4z6zb93t5wfM6Nbz67fzd66WfQeX5*5-2^eG3L5Q5$5}f!a~ez51f+5TeDfv5)a`a|f/f#5J4sc9eQ5^f66gfC3x10eZfUfMe'e)5X5~60f_5e5Dg3fGg55Lg8e$ex5Qgca b$fFgw10f?eFfMf-f.gFgr02fTgy5r6B5 4{gKc~a6686aacf*eWeHeUgy630l6l2e6ogBf6e'g$4Vf~g+eX4MgPfM4~6G6IfkgJeM4Vf%6Rd46Tf)4*gkb%6$fm3V3)6=aDc:bB7Ec|6J0u8K0'dDd%dG2w3+ch0MdLem8oa4310,eebHb+eg1O2H2J1rau7x200j8-76b!3;0I0?0abB7*1*6I6Ae+bce.9VaYe77O493~er4ha'eua*g^a-f{gqg~a=2#eEgvg,fOf a eOb3h|eIa{g|3if:a;h~5Mg;g!e-g.a{8y0kgge%10e(fY2Oe,e.e:b@7p1ucz142Be69/h%8c8Rd|2A6/dd2'f21;f4fV4o2n2e2g10fbfd0~fgfid%i3fLh92`b5fqgn02fuf|6Mfxf(4)iggC6ri96Mgsg7i+h`02fPh;fR5=4Ii.fW02gjf@gRh=gT4!gVd56di%4hf-h|f=g@i!eAj962g/h@gNh{jh54fT0pi7h5i_f,g1iUbdg4b0g6fJgygbi}jiid1ri=g=iij037gl5xh.a{gpg}i`gL5?jqfIh jn4-4/gIi4jygMjE5P5{gPgQi5jFj4f'h2gXjsg9f,g#j)5Ifyg(6njli-gZi/h?57k0hWj16Ci!g`6Jh|f$6PgUi)8o6XhX3;6#2O6;de8'8)0V2e0chg8@cu2raD7Q8Gbf0'0gdO9cdQ48dS9k9m9oktkvbfd=9D0a9F9H24hHd}02d 0q9Q1y9Sf02(h*f31?f5eXiKf9iN0'fcfeiRfj3SiW792`iZexftdVkdi(j=fAgufLihk1j^5hjrjI3l4Akdi{lcf;fXjek~6F0,g{jc4@icgAjt3lf`a/jZgdk4a@lx0Vi1g2jSeXfHjAb3fUj.6EjQlfjzgtlhi~5Rj{lylsl9li02gEj%a~gHlOj(k2i~l!3th72Oh96%hb1H020F247y0,9.hm3%c=fdc2kA9+4s9.8d201mbu9d8B92d+9=hI8fhL0;hN3,hP1*hSb}0QhWe,m67j0dl^9$l|ho0%0E0%0+87ao7pip9=0u16mA0u8:hGbVb{hT8(2Ban0dciake^jX4vdd1F9V0Qg'4WbS1+b:b{3$5l4s927C7Ra$0vcBcdcl7s3Nmzcr7Lkx931u3omRkD0'9V4W1f7X480daW1i9,0u0J0/mRdd6%0,0.0:02.