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
.65038.128013.9875sH3_8ufvIy n7aS1me(P24:twiçh)6o;bcdUg/0lqApr-R,=+Nzk95Jxé050L0u0A0q0C0Q0d0n0K0Q0q0d0d0Y010A0C0T010406050d0i0t0t0q0U0m040r0H0Q0i0 0H0o0n020q0t0T0I0n0W0u190U0R0i0u0d050O16181a1c140T041A1H051K0O1K1M1H140L0C0k0@0_0{0}0E0C0N0E0Q1!0E0A12050/0J0Q0u1V0`0|011Z1#1%1#0A1-1/1+0A0J0H0L1c1,0U1I0A0E0@1f0d0T0q0o0}0x011;1X010j0;0u0o1n0u1+2c2e2j1?2m1/2p0t2r040b0n0w0U0H0T0H0d0C1i1k0-2a0U0U0u0K2M1A2t0o1I0O282Y0A2625270L2v0}1%0o2o2J1+1S1U0^1=2,0C2.0o221T1+0T2R1I2W2Y33152d1k2@2k2|0U190Q120n0s2V3713362u391?3b3d3f0x3i2e3k2W2+013p0q3e040n0f3t2X143w3n0}3z3B0n0y3F3v373x3L3f0(3P3H3R3J3y0H3c3A3f0G3W3l381W3o3#3q3C0p3*3I3-3K3/3%3C0h3?3Y3^3!3$3M0%3~3m403T040s0P453,2^413:0s3h1B3j3X464e480s3s4j3u4l4d3a3`3B0s3E4r3G3+3S4w120s3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0s444*4K3.4S0x4b4:4u4=3:0x4i334Q4X4%0x4q4 4W47524z554#4L4|4H5a4+5c3{0x4O5f4;3_4?4U5l4`5n4|4Z5q4R4|4)5v514?4/5z574S0f4^5D4,3:0f4~4k565J3{0f545N5b4{5Q595T5g5V3B0f5e5Y5m4f5Q5k5(5r5*5#5p5-5w5Q5u5=5A5K5y5_5E5K5C5}5P3B0y5H615h635M3u1J311A2=2#0L2)3x0K222B0,1T1I300u323j3P056j0-6r5)0$120-0j6t5U0}0B3f6D5Z3K0j120K0E2e0o1T6I5)11040v6S5.0o120q0N0u6X3x6U0X3P0n5O3a120o170g0k0C6%4I6.1?6*6,6{3K120_0o0N6(3Z0H120Y75400d2h042l0U017a4e6U0F0z3W0n7o6-6E016z040C6C4I7q6J3y712e747x6 0177040Y797E7r7c127f7h6`7r6U7m4P7p7W7y5)6Z040K1a0A6_337Y5.7H7K7*7F7N7e0)0H0m0u0i0*0n7Q4 7X7p7F7!7$0U7(6~7r7H0Z7.3j7+3S0J120d2$7i2k6U6W7R7z7!6#7)6s7S120F7n7 8c3Z7t7v868n6!6$8B5)7-8a3u8x400t0C4F8i6|127U7~8w7W816M7%8q8J7F888I2X8K4e7;010u7g8v7 7F7t0u0=8Z2X7F7T8/8U8)6/7#8Y8F7,1289923x8+2r8|8V7r82917L7z8$963Z8+0@6O0o6Q0k8-0d0:2R0n2O0/7|9a809c8X848^3C8#948%9E9c8e048g0U8P0}8k9O7A046;0t6?6^9R7k9y7o8;128A9f7Z6:6=6@9D8~1?8H9i8L8N499Y8R9!7X8W909C9=4e9h9)5.8+2R7}4k8U9$048?0d9D8`9`7V8}9#9A9~85a33xa27/7M7d8,a74sa9ak83amaq9g9Ga02k9k9-au3Gaw7z7t2R0A0i0U0oaD3o9Baza89zaK128?9(aA9*04727Da#937I9H9/0}986Z9_048SaV8:ax9ea*ao78aRa/as0e0q0T0T0m0n0TaO840E0L0q0m0X0n0j3#9xaha_8Cal9.9F0495an4X9K9Ma=8l35ak8pa=8ubk9|7r8z7wa|4X8Dbo8778a-7F8M8O8m6Tag8Tai9}aybLaBbqbOar7O8gaH13aJ6yaY1%bH8b9}bAbs409;b@4ebQ045S6a8sa?9{9bbmbYa 7GaCb`aEas0o0Lb*06b,5.8=b/c68o8Ec99:bNc6b|5Xb 7z8{bDcg3SaTbZ8Gc8bI7bas0Ucd9{aaacaec0a@avaia.9Sc5cn0}apb;b%7e28cecxbJbnc6cV8!cX2i7^1a0n0H0jbjbVbEc4a{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:as0nb/99e4cQaL0.aOaQd,9demdUd*ade9ewaaaMeAd#as0)1:0L1j2.0n19et7C1x0n0q0i9l0q1*3*0O6v6q6be,0O6e1A0A6ge;2%2Z21232#0q1.e.6e1G6x5.2R9V0j0q0$0u0g0E0f121s1u1w1y0nd_2Y1Q1L040MeT0d1f1h0C1jeZ0{0u0#9u0C2R2T0ubf190C0?2|1kf62T3#fG0+6_fl0E0s0n0C0L0}0q9p0K0V0i0o0Ve+0V0T1g0d0VfK0AfMad120SfY0nf#2a2Of*0i0?f.f:0+050q3x0E0u0q0-0U2-6z0n0E2R0j0}03fX2Sf!f$f(f|f,f 0UfG2r0n0 0A1/0}0w8-192{0Aet2`7t0c0a1A0q2YfR3k2=g41(1`1)2s7z2x2o2q122D0r0Kgq0TgC0w0m281j6t6pf2346se+f23x7t6B9R6G9Ed9476L043#1S2p0Qbw9R7!eBbydS046+eC7B73a=hben9S6$0o2R9R7-9R0$0K120!1jcLh97l4c3xg`8Vg|8*cd7e01011s0o0k0H6^et00h02`3A9u1:2N2e0?0_eW73bf0q0K6jcG0+0n2o0nhja6hF8|aadGe0d5a(dMdnehas0j8.hB8jdTcObldeh;eqakh7dHa}dNd,b|dqg=dai0d`bWdE041=8-0Ack12h,dlaog`fGc(g`2|ind,hphrhthfeN7O0l0Qbge!gC300+0Kgr0Uet1:iqh)fJ0U2e0D0:0dd(iie6i49Ibmiqh^b$7z8+0j0+8M6Qa;h~8Qc1ewc#40eyaNaPiE7e0sa6eaex9%dgi5i)2ohld~iahh8+190d0K0i2-b*afi_c?cPj504eLi h`7O0s8-i!c@decKeIjod)ijjsi7h=bt8fd0h8bT6Vh56:bBdM0Zj0ath/ijaZj7i(a$h@jch_jeas2ojldseJiji%cQh6i+dO9^i@9Pigb+d{jFezjtj)jvdCj.e6jYio9Tj?ib9@dQie40cvjDi2ch12jGjU0xd%ekjAd+hhj=j%i,5)d@j_01kfdUi{4ei}eMju7e0fcGjyc3kpeHkxkzi1dVj~i~jHj87Zc 9NkN12bx8rdijRjcjTkF0~0Ece50i|6A0ujZ7Fhzh5g~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?m7lvnmlj7egD0jevmwkRkElXnQeFjXe8k}lom#1?kDk0nA1?8+eP9ueS1:eVa(eYe!e$e(4Ve*6kfk6ce/6n14e/0.0:0=04.