Aller au contenu

Anniversaire de chat

Lorsqu'un chat souhaite offrir une carte d'anniversaire à un ami chat, il lui offre une carte avec un chat tout mignon avec un texte sur son âge dans sa vie actuelle. Oui, les chats ont plusieurs vies... Ce qui fait de très nombreuses cartes possibles à créer.

La société CatCard propose de personnaliser la carte avec un texte en anglais ("en") ou en français ("fr") qui dépend de l'age et du num_vie ; des entiers strictement positifs. Si langue demandée n'est ni "fr" ni "en", la société CatCard propose une réponse 'Je donne ma langue au chat'

Écrire une fonction channiv qui renvoie le texte demandé comme sur les exemples suivants :

Exemples
>>> channiv(3, 4)
'Joyeux 3e channiversaire de ta 4e vie'
>>> channiv(3, 4, "en")
'Happy purrthday, for 3rd year of 4th life'
>>> channiv(1, 1, "fr")
'Joyeux 1er channiversaire de ta 1re vie'
>>> channiv(1, 1, "en")
'Happy purrthday, for 1st year of 1st life'
>>> channiv(3, 4, "miaou")
'Je donne ma langue au chat'

Paramètre par défaut

On pourra constater que channiv(3, 4) est équivalent à channiv(3, 4, "fr"), en effet la majorité des clients de CatCard sont français ; ils veulent que la fonction soit configurée pour renvoyer par défaut un texte en français.

Le mécanisme pour ce faire est le paramètre par défaut lang dans la définition de channiv

🐍 Script Python
def channiv(age, num_vie, lang="fr"):

Ordinal abrégé

En français, on place seulement un e après le nombre, sauf pour 1er (premier) et 1re (première).

On trouve souvent des abréviations en ème, elles ne sont pas recommandées, sauf pour le cas d'une lettre comme nième, ou pième.

En anglais, on place th après le nombre, sauf pour 1st (first), 2nd (second) et 3rd (third).

###(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.128013.6503842znAygIN )rPq-;ou5(,:étsh07w+8f/UJ63pçv1x=a_ckmiHeS9lRbd050+0#0A0U0Z0(0B0m0W0(0U0B0B0T010A0Z0O010406050B0u0Y0Y0U0o0i040$0t0(0u0 0t0g0m020U0Y0O0s0m0)0#190o0q0u0#0B050J16181a1c140O041A1H051K0J1K1M1H140+0Z0Q0@0_0{0}0C0Z0j0C0(1!0C0A12050/0*0(0#1V0`0|011Z1#1%1#0A1-1/1+0A0*0t0+1c1,0o1I0A0C0@1f0B0O0U0g0}0e011;1X010I0;0#0g1n0#1+2c2e2j1?2m1/2p0Y2r040b0m0p0o0t0O0t0B0Z1i1k0-2a0o0o0#0W2M1A2t0g1I0J282Y0A2625270+2v0}1%0g2o2J1+1S1U0^1=2,0Z2.0g221T1+0O2R1I2W2Y33152d1k2@2k2|0o190(120m0R2V3713362u391?3b3d3f0e3i2e3k2W2+013p0U3e040m0N3t2X143w3n0}3z3B0m0d3F3v373x3L3f0v3P3H3R3J3y0t3c3A3f0M3W3l381W3o3#3q3C0E3*3I3-3K3/3%3C0H3?3Y3^3!3$3M0%3~3m403T040R0D453,2^413:0R3h1B3j3X464e480R3s4j3u4l4d3a3`3B0R3E4r3G3+3S4w120R3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0R444*4K3.4S0e4b4:4u4=3:0e4i334Q4X4%0e4q4 4W47524z554#4L4|4H5a4+5c3{0e4O5f4;3_4?4U5l4`5n4|4Z5q4R4|4)5v514?4/5z574S0N4^5D4,3:0N4~4k565J3{0N545N5b4{5Q595T5g5V3B0N5e5Y5m4f5Q5k5(5r5*5#5p5-5w5Q5u5=5A5K5y5_5E5K5C5}5P3B0d5H615h635M3u1J311A2=2#0+2)3x0W222B0,1T1I300#323j3P056j0-6r5)0X120-0I6t5U0}0F3f6D5Z3K0I120W0C2e0g1T6I5)11040w6S5.0g120U0j0#6X3x6U0x3P0m5O3a120g170V0Q0Z6%4I6.1?6*6,6{3K120_0g0j6(3Z0t120T75400B2h042l0o017a4e6U0n0y3W0m7o6-6E016z040Z6C4I7q6J3y712e747x6 0177040T797E7r7c127f7h6`7r6U7m4P7p7W7y5)6Z040W1a0A6_337Y5.7H7K7*7F7N7e0L0t0i0#0u0S0m7Q4 7X7p7F7!7$0o7(6~7r7H0G7.3j7+3S0*120B2$7i2k6U6W7R7z7!6#7)6s7S120n7n7 8c3Z7t7v868n6!6$8B5)7-8a3u8x400Y0Z4F8i6|127U7~8w7W816M7%8q8J7F888I2X8K4e7;010#7g8v7 7F7t0#0=8Z2X7F7T8/8U8)6/7#8Y8F7,1289923x8+2r8|8V7r82917L7z8$963Z8+0@6O0g6Q0Q8-0B0:2R0m2O0/7|9a809c8X848^3C8#948%9E9c8e048g0o8P0}8k9O7A046;0Y6?6^9R7k9y7o8;128A9f7Z6:6=6@9D8~1?8H9i8L8N499Y8R9!7X8W909C9=4e9h9)5.8+2R7}4k8U9$048?0B9D8`9`7V8}9#9A9~85a33xa27/7M7d8,a74sa9ak83amaq9g9Ga02k9k9-au3Gaw7z7t2R0A0u0o0gaD3o9Baza89zaK128?9(aA9*04727Da#937I9H9/0}986Z9_048SaV8:ax9ea*ao78aRa/as0!0U0O0O0i0m0OaO840C0+0U0i0x0m0I3#9xaha_8Cal9.9F0495an4X9K9Ma=8l35ak8pa=8ubk9|7r8z7wa|4X8Dbo8778a-7F8M8O8m6Tag8Tai9}aybLaBbqbOar7O8gaH13aJ6yaY1%bH8b9}bAbs409;b@4ebQ045S6a8sa?9{9bbmbYa 7GaCb`aEas0g0+b*06b,5.8=b/c68o8Ec99:bNc6b|5Xb 7z8{bDcg3SaTbZ8Gc8bI7bas0ocd9{aaacaec0a@avaia.9Sc5cn0}apb;b%7e28cecxbJbnc6cV8!cX2i7^1a0m0t0IbjbVbEc4a{cWb!brcD4nbu8hbS5.9Qd1cy9T9,9Xd43Z9ZcwaWb-7ub:c*bm9U9WcAa+7Jcq9@698_cMc2dd6Yczc(cCc`5)8+b)cIbFb.a!dzdvd69V9-dxa,do12b~drcubUa^8}bXc_dhcBb#c68+ccc!8wcJcjcT9SdjdLd,b_c}2kcra=cNaIcPdW9 d:dydYa4cFcHdcajaXab8@d^dte5a$cSd=cod!d,8+cZdDc^d}eecUd 8(7:as0mb/99e4cQaL0.aOaQd,9demdUd*ade9ewaaaMeAd#as0L1:0+1j2.0m19et7C1x0m0U0u9l0U1*3*0J6v6q6be,0J6e1A0A6ge;2%2Z21232#0U1.e.6e1G6x5.2R9V0I0U0X0#0V0C0N121s1u1w1y0md_2Y1Q1L040KeT0B1f1h0Z1jeZ0{0#0f9u0Z2R2T0#bf190Z0?2|1kf62T3#fG0z6_fl0C0R0m0Z0+0}0U9p0W0r0u0g0re+0r0O1g0B0rfK0AfMad120hfY0mf#2a2Of*0u0?f.f:0z050U3x0C0#0U0-0o2-6z0m0C2R0I0}03fX2Sf!f$f(f|f,f 0ofG2r0m0 0A1/0}0p8-192{0Aet2`7t0a0c1A0U2YfR3k2=g41(1`1)2s7z2x2o2q122D0$0Wgq0OgC0p0i281j6t6pf2346se+f23x7t6B9R6G9Ed9476L043#1S2p0(bw9R7!eBbydS046+eC7B73a=hben9S6$0g2R9R7-9R0X0W120l1jcLh97l4c3xg`8Vg|8*cd7e01011s0g0Q0t6^et00h02`3A9u1:2N2e0?0_eW73bf0U0W6jcG0z0m2o0mhja6hF8|aadGe0d5a(dMdnehas0I8.hB8jdTcObldeh;eqakh7dHa}dNd,b|dqg=dai0d`bWdE041=8-0Ack12h,dlaog`fGc(g`2|ind,hphrhthfeN7O0k0(bge!gC300z0Wgr0oet1:iqh)fJ0o2e0P0:0Bd(iie6i49Ibmiqh^b$7z8+0I0z8M6Qa;h~8Qc1ewc#40eyaNaPiE7e0Ra6eaex9%dgi5i)2ohld~iahh8+190B0W0u2-b*afi_c?cPj504eLi h`7O0R8-i!c@decKeIjod)ijjsi7h=bt8fd0h8bT6Vh56:bBdM0Gj0ath/ijaZj7i(a$h@jch_jeas2ojldseJiji%cQh6i+dO9^i@9Pigb+d{jFezjtj)jvdCj.e6jYio9Tj?ib9@dQie40cvjDi2ch12jGjU0ed%ekjAd+hhj=j%i,5)d@j_01kfdUi{4ei}eMju7e0NcGjyc3kpeHkxkzi1dVj~i~jHj87Zc 9NkN12bx8rdijRjcjTkF0~0Cce50i|6A0#jZ7Fhzh5g~6N6P6RkYjOkxclhujNhgi8c$d.d8jMd212l3jI47hda)k#dZ9Her7Oh|j,hvfjcfdug?j6k7j$hhd;l4cElkh}l86)j{lpkhd5edlxa1a~k*7?7^7`c=kAlqc$lHlclJegkr12hOh2h4k bKiDk*lll(k17ejgjijkk%kgj;dwk(kue17Oe$9n1T9q9seQ1:9wkJlRldc%l^k7lZ3Al#lBl5d7l1l9hajUl*k}lbkUl`7ei/i;2`lmjNbCl=d|aUlU2kc)mn97esaGkokijrj kTj!dIlTihjqk6hca%7Ck9l,8,i?mdkelDkB8 mNmLi9l_mD7Ob2b4b6b82Q28bcbebgbim4ebmMdXmC76epm(c$mah3k}k!cta$b?mY7jlajUj+l;lQm{lGm}n1b^n0cQ9kc-iPc:lPkPkKm|eEmzefc|lI8 n3mclgdIl6mglCmik*nek}mvngl?m7lvnmlj7egD0IevmwkRkElXnQeFjXe8k}lom#1?kDk0nA1?8+eP9ueS1:eVa(eYe!e$e(4Ve*6kfk6ce/6n14e/0.0:0=04.