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
.128013.9875.65038,!è Ow5e(CRpkDojicE6S1vqAd:xIy24flnç-]3m=)rh[us;b/.àt_gLéaP050C0k0%0,0t0K0X0g0u0K0,0X0X0R010%0t0o010406050X0W0Q0Q0,0T0G040x0r0K0W110r0L0g020,0Q0o0Y0g0n0k1b0T0A0W0k0X050!181a1c1e160o041C1J051M0!1M1O1J160C0t0z0_0{0}0 0U0t0)0U0K1$0U0%14050;0Z0K0k1X0|0~011#1%1)1%0%1/1;1-0%0Z0r0C1e1.0T1K0%0U0_1h0X0o0,0L0 0H011?1Z010J0?0k0L1p0k1-2e2g2l1^2o1;2r0Q2t040a0g0-0T0r0o0r0X0t1k1m0/2c0T0T0k0u2O1C2v0L1K0!2a2!0%2827290C2x0 1)0L2q2L1-1U1W0`1@2.0t2:0L241V1-0o2T1K2Y2!35172f1m2_2m2~0T1b0K140y2X3915382w3b1^3d3f140H3j2g3l2Y2-013q0,3g040P3u2Z163x3o0 3A3C0I3F3w393y3L140j3O3H3Q3J3z0r3e3B140w3O1L331C2@2%0C2+3y0u242D0.1V1K320k343k3)3=0/3}3n1Y1^0p140/0J3)3I440 0i140g4a3X4c3z0J142g0L1V0k0T0X0=2T1B1D3~4b2`0113040l4h434z0L142r0t0}2g0u1A4E3a4j4B0d3O4g4y3c140Q0r4K4P3y4B0S0D3V0g4,4V4i4G140o4q0X1l2:0X0(4n4p4r4t0k4U3m4Q4z0r140R514W1^4B0V0O4+4-523y46040J3!584/4X043{2~0Q5m4F2m0r4e042|5t535o4J4L0L4N4v37590 4B4*4w3v064-5Q4.5u45140t495N2Z5S5B3p4I0=5E5G4$3Y5b5+4j4H5p2T5r5.4z4B5d5Y045!3y55040R575{5}3Y5:4Z4#5{5g5,145M355P5R6g6a5/4;4?4^1A4{0L4o0z4?4 5@5v140#6u5$040,0o4=0L0C6y5K144D695J3z4;5=0r5s6K5n5a140S5e4,6i4z5i2T0%0W0T0L5A3R6k4r6m4`4|6r4~0t2T3V1C403|3*6{0!3-1C0%3/702)2#23252%0,1:6}3-1I425#0 2T0Q0(0J0,0p0k0(0U0P141u1w1y1A0g6d3~1P3l1J0*1=320r1:0f2C0g2T0z0t2q0%0g0$0g2z2(4q0g1;0^0`0+0^0C000W2P0t2V0t4^4 0g0X0k0K1l0g7%0_0T2N0f2T0g2K0T0;0L7O180T7V7v0z3B0k6%0X6x7z7d0h1m327Z7N1=0u0t0N0/0}0r0W7!5W0J0+5=0%7v4@1i2O0^2f0T3=6%2g7O1;0g1U7*7,6?1=2Q7k0M1l8s0J8u8w7v0=0L2M0g1y7$2:8K4q4o7{1=0Q0+2a3?7}1i0^2n1l8M6p7:208c1S050U0y0g0t0C0 0k0E0o1)0u0,2O8n0k0N0{0N8z1j7+5:0v999b9d9m8*7V0,7.1h9l1l059v3Y0U0k0,0/0T2/460g0U2T0J0 03989a7)9r1l9f9h0,9j9x2O2k110%1;0 0-4q1b2}8I2|5i0b0c1C0,2!927A048f8K0+0Z1j7D1c9u7^0+9T2P8(1=1)0X8x0g0,0G8H0g0z0r9c2O7P2c812q6?857}0T0+5r8*8C6l8|7!1l8I006:6s8O0g0%6P0Za98.4!8C1@0+0g2qad0T0)197N0g0l1|8)0H0S8 9`0v8!0W2N1=7=8D8F7 857X0K7Z8K0W8K7)2O4J7|aS7k4Kag056`3y1`1(1*1,7e5h145k0T6*656N2;6Q35644j5w5V6)636Y5C5(4s5F4O6R5T6H047x3v6_3?5|aZ1$8)0Pa%0g0m8}1A0N8l0g8:ag8oasau6P7!7Day4_0da3877_798Ja:8q0Tag5G1Xa_1A7O2r6$2T0K1;2C810g5r8/1=b5bG5q6PbF41a(7d0-b/0_0U0,7ub?b(7=8xab1=8#0{ah886%ad8p8l0+1=aZaM4K9t5Dbw4N0SaRabbT0)88ada{67aO0}aQaS1caVb 7ObI0)8)0IbM0x0t0_00b^ar9c0Xck1m0,0s8qacb-atav2Qcq4=6-8|amcqaaacbWat180K0;0%0^cX8)0ja%1La)0L2o0Lc.7J2qai7Ma3d18P7vc|4@az8KaB7VaD6p4}4saG3=2S1A2K6Ecb9193950 0,1j4u0N2C8;8o9Vb.8a8n7%8na}9ma 2D0BdO7v8/dS7v2QdV4r8K8(a|8{d$9Ab79E9G9I2k9L0k9N0103dN7T0XdQ0:0U3?e60/0Nd/ebdY8La~4 9#2N9(019*3#9-7V9/149;9?9^0y9`0F0KcH7OdN0}c%2KeE7a9td/aq7Wb?7!d=ehd#7-b15(b4b69C1*1|1+2u6S0 5ibfbh6j5;bke*545x5zbs6L5:cD4Mby5Ie$015 8ce{bA6M047m0G5H4xe|4B0l4)3)0!6`040#0g7Cdkcna`2c2Q8)0ucg0L0)a18bde1T1Vb7eYbae#f12z2q2s142F0x0u7_0o7O0-0G8;br373{7e363~febt5U04486G015x4gbz7f4k4mdz6;dB4uf#f9f#e@bve_f6bE6L4Se.5ocOf;6UbD3G5QfX3K6,dt4_6o6qaF6@e=e|5 62bmg64A145c6Wbn6Zbe5lgff15:c7bl3kgp5ve:fQgygkf@4KcEe`f7f1e~f?14f4f`2Zgkf9fb5{6f6h6L5i5Wf~6ze^bxgPbc6b040VgMe,5?f)4%145`gj6LghgigDe?4YaNg1bCgo6g6Xg|5pb$6naE6=gef0f*gLg:bi6A6C2q6Fhe4R6Ig-gwg 6VgUg5gX146#6%gC3vgz6zds6.gbdA6tgUc96}fS3,3_7da*dhb(7%dq6(0t8-0gd+e9d.2I3{cM0Ed?ei8Oax3e0:eJ1ca;aq1U2T2V1vaXeM8F9a7vc5410l0`0kb(871;6%hqfefg9|b2eC7;d:h}8k4jb8eZbbgke(gsg@e|gv6Ogxf{f8144Tgtf*gF5)50iw5~gBg!g704g$5*hk546wg-a-0Qg(gR6IgT37fdbGfgficm7O1yc%182NeBadic8C8@er2M7adI2@fy1{fAg)4jfD2B2DfHfJ12fMfOe9hxgQhJiT37fWhtfZe0f#f%f?4l6Af-gdgIisf1f=iJbugGf_g ivingug}68hbg;04iS3kgVhziFhBazhDf.hFjthc56iEglg+g?jBhse|ilbgiBhfhojn6T04jsg{iojv4`iHiAjKiCbqjNiygHiPg^iLjZiFiNj?it4CjA5Oh2jD01gY5Xj-hfcO0(j+jNg_j:j)g g315k1jSjuh5c}gah8f/j,gJjLffg-6B6Dhjjxg*6Jkye+jYkB5^6Ugoikhu0:hwkdklg9h7jhh9kq5OhH2!hJ6~hLdJ9496012q0NhQ9hbJ2Da*7?8)a!1=0ed_9Cd{4qd}9K9M9Ok%k)k:ek9%0k9)9+2gh^es04eu0!9@1C9_fw2^igfz1}fBf*i`fF2E0gfIfKj0fP3)j57yj7bGkIjak5kr3yjdj_f+jggckRj|jlhmlFj;jqlFf}jWe+g0lQg2kHj9hv6(jN5-lNbjg/k64jjUkMkDj%gKiDlS4:iGf^g%jNk4kMj+lKf*l$kE5ol.jkl g=kb56g`hygEkelV04jQkTiU416|2!7c1N040q2g7X0:achW3?djfJcxk.a94Kac8D2c1qat9D8!9sd/agh_8qh{0^ie4Ci0i2cs0Ti6bGmD7I0Cmpa3mthY0+0u0+0/aoaR7OiYag0t1am*0t9dh@c0cqi3952NaQ0CcNaNcCl^4NdI1J9|b:hhb}1=cicq3=5F4K9s7#7@b60Lc)cI2f0^bfm)cV7.k+9t1y3Bm~0g0e0g9|4=1j7}4q0Cb01maa0t0Z0?m~dI6~0:0=0@04.