Aller au contenu

Exercice 3 - Dictionnaire d'occurrences⚓︎

Occurrence d'un caractère dans une phrase

D'après Le Larousse : « En logique, place occupée par un symbole dans une formule. »

  • Le nombre d'occurrences du caractère "o" dans "bonjour" est 2 ;
  • le nombre d'occurrences du caractère "b" dans "bonjour" est 1 ;
  • le nombre d'occurrences du caractère "B" dans "bonjour" est 0 ;
  • le nombre d'occurrences du caractère " " dans "Bonjour à tous !" est 3.

On souhaite stocker les nombres d'occurrences dans un dictionnaire dont les clés sont les caractères de la phrase et les valeurs le nombre d'occurrences du caractère.

Écrire une fonction occurrence_caracteres prenant comme paramètre une chaine de caractères phrase. Cette fonction doit renvoyer un dictionnaire des nombres d'occurrences des caractères présents dans phrase.

Exemples

Python Console Session
>>> occurrence_caracteres("Bonjour à tous !") == {'B': 1, 'o': 3, 'n': 1, 'j': 1, 'u': 2, 'r': 1, ' ': 3, 'à': 1, 't': 1, 's': 1, '!': 1}
True
Python Console Session
>>> occurrence_caracteres("ababbab") == {"a": 3, "b": 4}
True

On rappelle que l'ordre des clés n'a pas d'importance pour comparer deux dictionnaires.

###(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
.128013="I_e+3yqdàuéxgPvr08-èDfLbco/m]h(apl)7,[n sS:j6w 1ki.9Ot25;4030e090Y0C0U0E0L0K0v0E0C0L0L05060Y0U0D06020R030L0g0y0y0C0m0c020M0w0E0g0_0w0J030x101214160~0D02031m1f1p0x1m0~0e0U0l0.0:0=0@0:0J0j0g0C0j090p0D0c0Y0A1d0K0A0U0j0A0E1R0A0Y0|030)0u0E091y0;0?061Q1S1U1S0Y1!1$1Y0Y0m1n1M0.190L0D0C0J0@0Z061'1A060s0+090J0C0y091Y1|1~231)261$292b0|040K0k0m0w0D0w0L0U1c0J0K0'1`0m0m090v2w1f2e0J1n0x1M2J1?1^1@1Z0e2g1B0U0J282t1Y1v1x0/1(2T2V0J0w2Z1Y0D2C1n2H2J2/0 1}2x2#242(0m130E1Y0C1P2C0s0@0108080v2)091U2'0w0p0Z0p0S0|0K0S1f0C2:2?0}2=2f2^1)2`2|2~300932063436383a2W3d3d3h0Z3k3m1~3o2H2S063t0C2}1n2 0A313335370'3D2(3F0b3h0b3J2G3n0~3N3r0@3Q3S033U3W3z3Y3C2U3E3e0$3h0$3*1g3,3p2@1z3s0w2{3R3v3V3x3X3B3!3|3$3e0!3h0!422/3-2?3O3;4c3^3A3Z394i3c3e0P3h0P4o443.473:493u3T3w3y4w3{3b3F0G3h0G4F3L4q3q4I3P4K4b4M4d4O3`4h4R3e0o3h0o4W2I4Y462$4#4a3=3@4e3_4g4y4,0p0W3h0W4;3M4r3/4_4L3?4N4f4x3#4A3f0n0|0S0n564?4s4$4{5d4~5f4z3F0S3g025x5n455p4`4u4}4P4+3}3f215z3I0x3l3+4X5C594t4'4v4*505J0S3'5z3)5O3K4=5S4!5U5c4(5e4Q5Z3 5z415'5Q5)4H4^5,4|4)4 5g5w4l5z4n5^435R5{2_5q5F5 5u510S4C5z4E662;1s2-1f2Z2M0e1^2R594x2Y1w1n2,092.3n5_1n4x6B2f0U0e0@352H5w3v6I6K605v3e3g0K2k096Q6e5Z1Y5^691)0T0|0'0s6D0K5*5|0s0|0w0v0v0g2B280v0936140C2E092C0L6D6.240{020B746%3:0|0D3V0;097a584!770F0N6D0~672I5C6P066L2?3F5L5c7t5X613e216V2a6X7u6R517y5'0K7N6-7b060v5y010K0X2@0m0h0h0K0g2x1v2E0U1d290U2C0K0l6I090V7o7i6H6J7I6M3e5#7z7_7B6S0p3'7F2b6Y5:4j826#3l7O7P7j5|6;6?6^2C0J6{737q028d4Z4^0w0|056,753s0u6)0U2E7@4@760|0B0F7?8n7s7 087{0p5=7~865I883 847H80518P7M7O8w0@6(020s498v7Q0J0|0v6~702C8+8e240w0Q0|2U8?8q2_7d7f0L7h8J7Q777n8n7p2;3N7A8M7w4k6O8L6Z884l8V8R5Y9j8a8o8c8#7Q7S0|7U7W0K1}0m376^0Y0.0A0C0d0g1%8/0m6 0Y0q7-2z0:9y917;8I9a4r9c8N6h8Q7I9i5h4C9l9$879'9p9r9s8@1)9u027U070E0K0s0C1b2y0U0L0_1D9I0m2y090g0i0.0;0K974p8C0K9Y9e0p4T4M9c9%4S226W9m7Cai9-9.8p8D6'8{6+8nav4s8.8:0Y71932/aB598_8{1eaA8$3P8g6@6_8k098m9W8~1)969V6C9b8L8N4.ak9h9+3F4.9)8X5Ja)3Jau9raP9=7U0S0V0K0t9JaE9O9J0w6^1~9DaV9D0e0h0O0f2y1~0-1$9~7(7*0*7-0B0e1d0v0K1O9Rbabc0K8j370J1?7!2,0h0v0h0'1228b9bf0K9R7e9L920F7=98aeag1~3F53a*aq8153a/7J5JbXa?a@9/aY0@a`0K0rbK6{a90L0Hbr2x9|0j2bbz1%bh370y0DaF6^2A722s0J0eb6a53ibRad949Xa'ah5l9gbZ6f5jb$am6T5j2J8bb*7NaP8-026=aSbxaVae59770IcE5+aD9L8;aHa$9:0@770z8}aw0@8s020a8uaO7Q0y0U5ka#3L8K6Q8N5xcl9*8S5hc-cpa,6T5yb)9.aP8'3992cI4^a!bScg7^c+cj7y2 alc@5Kao7Gcm5Z7Lcucva_7T0K0Za}a a9cL9N7-9B9Lbz6V00010b0W0#b89yaaca0Jbg1%7'2w7+2Cb^0vdydAdCa00p0f0p1v7-9HdQdB1O2VbLd!0#2 0O2a0*0-bx1dbA9y7YbEbGb}0Yce44d42xbU0J5w7}d9a+c:e1dd85c/9nc;7}8!dj9tdlb:dH0.b0b@b_0.7Y7!0Ed(bI7Yb36_1|1ddGaFbeeibhdK7)0JdM09b^0C0l2DbL2 0l3Ra6a43jd3aXd~cibV6T8Pe3df880S8Uape9are%ateecP7Rdl0BdPdzdBdD9R0Sb29`0w9 0KdZe?0#bs1%d/bz2CbQc(7ra%d6eX3f639#a:e$9ke(fhc;ffedb*cxaR8i6`cDd}3OcGd08 029K9MaGfyaZ0|cSc!e.cWcZaIaPc$c'eTcOd57`cj9!e!e)816ge78Wb%e$9!foc|0|2C0Y6^aNfM8,fraT8lf92J6F1q6n0x6p1f0Y6rf~2P2K0C1#6A6o6x7p0'0)0+0L02.