Aller au contenu

Moyenne pondérée

Les résultats aux évaluations d'un élève sont regroupés dans une liste non vide composée de couples (note, coefficient). Dans ce couple :

  • note est un nombre de type flottant (float) compris entre 0.0 et 20.0
  • coefficient est un nombre de type entier (int) strictement positif

Écrire une fonction moyenne qui renvoie la moyenne pondérée de cette liste donnée en paramètre.

Comparaison de nombres flottants

Lorsqu'on écrit a = x ou x est un nombre réel, la valeur de a enregistrée en machine est une valeur approchée de x (quelques fois la valeur exacte). Cette valeur approchée a la forme d'un nombre flottant (le type float en Python). En conséquence, alors que des calculs et des comparaisons peuvent être effectués de manière exacte sur des réels, ils ne le sont que de manière approchée sur leur représentation en machine. On peut donc obtenir par exemple, avec a = x et b = y, l'expression a == b évaluée à True alors que x et y sont différents.

C'est pourquoi les tests ne vérifient pas l'égalité des résultats et des valeurs attendues mais leur proximité.

Ainsi, on peut vérifier que \(\sqrt{2} \approx 1,414214\) en faisantassert abs(1.414214 - sqrt(2)) < 1e-6. Ce test vérifie que les deux valeurs sont proches à \(10^{-6}\) près.

Exemple

Le calcul suivant illustre l'exemple :

\[\frac{2×15,\!0 + 1×9,\!0 + 3×12,\!0}{2+1+3} = 12,\!5\]
🐍 Console Python
>>> moyenne([(15.0, 2), (9.0, 1), (12.0, 3)])
12.5
###(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.65038.128013bqêO,vià3o_x;lpwf( g0]6-)2s1+Vené4è[m5tLRPhkN:c.a=ryS*Iu/7d050-0H0P0Z0j0q0D0v0X0q0Z0D0D0!010P0j0r010406050D0*0N0N0Z0#0$040%0m0q0*110m0I0v020Z0N0r0p0v0R0H1b0#0e0*0H0D050+181a1c1e160r04051J1C1M0+1J160-0j0i0_0{0}0 0T0j0w0T0q1!0T0P14050;0d0q0H1V0|0~011Z1#1%1#0P1-1/1+0P0#1K0P0T0_1h0D0r0Z0I0 0C011;1X010t0?0H0I1p0H1+27292e1?2h1/2k0N2m040c0v0S0#0m0r0m0D0j1k1m0/250#0#0H0X2H1C2o0I1K0+232T2022211,0-2q0 1%0I2j2E1+1S1U0`1=2%0j2)0I0m2-1+0r2M1K2R2T2~17281m2/2f2@0#1b0q140E2Q3215312p341?3638140C3c293e2R2$013j0Z39040l3n2S163q3h0 3t3v0K3y3p323r3E140O3H3A3J3C3s0m373u140z3O3f331W3i3T3k040,3H1N2|1C2-2W0-222#3R0X2^2w0.1T1K2{0H2}3d3+3^0/403g3#0 0U140/0t3+3B47010s140v4d3Q4f0I0t140N0m0$2j2)4k462:0113040u4v3!4x0I142@0P1A0n2D0I0/2M1A4C3r4z0B0W3O0v4W4j4e4E140X190*0q4K0m2=0P1B1D3d4Y4l4x0m140!3H4;4w2f0N4o040x0Y0x4V4X3Z3K4#4%4)3^0H0t0t4.2~4{4D2f4@044_4/3o5h3r0N0j14535n3z4X5p3R49040t3T4`563R4z4B5v455i3i4G0m4I4Q5G140h5E4Z354#0m5c4c5J5F4f4S5U4=5j4h042=5)4|5M044H4J4L4N0H4P5#5V1?4z4U5J065x5x5$4!044$0N4(4*4,5f4:655j140F5m5g6f5;5b5d5/5L0 5k0(6p575=5O0H54635y4m58695a5Y5d6d5o6l6r6h6j6e5}3D5X5Z6z6B4x5A2M0P0*0#0I6u3R4F67596b0I4-6$4f5k0+6.66686a6n5e3Y0+433 3,6~0+3/1C0P3;732Z2U0Z1.703/1I5K3r2M0N0n0t0Z0U0H0n0T0l141u1w1y1A0v60301P3e0T0E0v0j0-0 2G0H0#0Z2H0A0D290D0A2=1S0X2w0)0P0J7I2H0v7M0I0^7Q0j7S050Z3r0T0H0Z4N2(490v0T2M0t0 037G7X0j1l7L7N7P4M7(2m0v110P1/0 0S7H1b2?0P0v7;140a0b1C0Z2T7A3e1J0G7H2F1l0v2M3^1F4M0J6y7y1R1T3r7/4q0I2G7~1m2=5C141I8F0-8H8J7 871~04280#3^6Z0j0#0v0*1m6Y0r1/1N8p040Q7+3^7#200*2O8K8.8D2.4f1^1$1(1*7e3R2s2j2l142y0%0X0#128f0S0$231l3+3~5K2 416}944f5A5C0#6=2f5H5Q6C6w5P5|5*5~5S9v6m6G5!306P4y140B9G6r5,5.5J6U5W9A5@1l5_5{9K9D0 5 6T6K015k0Y9-6{9p6 2T7c1L041A8f0J1y1T3u2j4I0v0k8|3{8~4x901`1)2n9$2g2i2u2w9a9c9e2z9h0T9j5#9l3Z9n3o059:9L9s5D9T9*6(0H1/2v6,9P9+9R6#ax9L6(5?0D4*4M7H5`6I2S9*9(6164aJ5N9B5g9U1?5k6N6JaX9^aB9 9y4x4z0Ma.4}5s50a=9E040y9)a*6_aEa%aEaza,aD9C5:9%14a;b66q015r3aa_b8a{a}ab9,9.611C9:1P3-713|7d0g1m2{0J0t0L2M7I8g7+3~5rbA1:0i8s8K0Ya3bs0i7z7B7D7F4I7}7 0ZbJ0X827R7T7VbV1mbX2N7C837)8=8 7.7:2=7=7@5c7`7|7J8K0Ab*bZ7%7S2d8V0H8a8c299 8gb?8i8k0+8m1C8o7d8b0*0v0-004,7W0f0Pa32-7,1(a8939*96ae990v9b9d0r9fakam30ao7x30atab5A4bbg4g4icR4n4p4r4t8B9#b79M4AcUaY9XaO4OaR9qa/9N7w3d6255a~6*2D6cb04^aE4~5t52bjc#6(6@6F5Zc-a#6L5lc~a@5u2~c?4W9*av9uaIab6(0jb0aGb20d147I0I0wcZ419L9xbb3Kds042tcRdAc!bcaK6xaM5^aP9!dyab4S4T6TaWdmc)dG9Fdld36R6od!bcb1d(6vaLaN9Zc-aTb9c(5-dYbiaV6Ad93s6D6ac`6,d89*5k6ib2d$9J6Obk146td+6%dXd`6Aayd~d6d%6k9Le4a(2Sd|d49Id2bc6W0:6ZaHemdW6)6E6+6-ed6/146;eG6?6*a bn6|3_2TaobO3ect3R8G1l8T8L4n5k8PeW8ReY7Kc41+1v048)280X0U1Ce.cl008)860*8,8B1Q9@8;258@0#8_2P8Ca4cu1_92aac#cz982xcCahcFaj9iez41cK415#cNd#9Wd^5TeK9VeNeAc#d*fAdJc)dM9YdOd:dzd=dBeed@fM5%14a|eObpeS9?1J9_0v9{0*9}2ta0a2f8eV8 cvfcc.2fff2vcBcDai9gfm9k3-cL9oeQeifu9Td|fCe9ftd-dNc,d^badI6vdofPc/a{gbdQc#bea^gf9wfR3Ya~etfxa$c}gt6Q9WfGc+aQgad?gegc5RghcRgl3bgna`fSdfbof bq7bbt9@bv0vbxbzbB7+0{gW7g0jbH0vbJ0#8t0IbMf8eT167A7C7E01g+g-0A5C0I8`1l2)0q8W8rg,8K0vg}g 0Ih18-b/a6b;7H8h7?7^7`g`b}h82Hhb85c4c63U8eca0I5A8j8l8n0E8/0V8u8w0m8y0-8A0v1s0/0*0ogW1c8!g,cl1:g#1%0D9Bf0f+a6f-1{fdbcf;afficEcGf`anf|fqcMf au4a5ccR5,4jgL3D4 4q4shadxarfKc%h~d}gyd.fId^dTegerejeEe2engvfDdC141Ed^5IgF9z5?c|04ecimfNfzg5ev149taEdHgjfEg1isggfwiy9ziAi5dR9Ndp149SiN66g7fHg9i85(ifg0d50n6_ijeadbgw3sdDipi#14iriH6viPeqdiiDawiWgoi7iK9Viui?04iMiBi`gsj3a`9Oi/0mdqi/dK4Igzd/ideu3rew6Y6!e6eCd 4+e1iveJj06meMjbc=gP449;3.gT710:0=0@04.