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
.128013.65038.9875snc)êwuqlI3 (è;ébokp/h1Vtà,[aRPmy7]f4OL_26ev-*x+diSg:5=N.0r050Z0T0B0F0!0l0d0o0f0l0F0d0d0)010B0!0w010406050d0j0I0I0F0-0J040#0u0l0j110u0e0o020F0I0w0r0o0G0T1b0-0k0j0T0d050x181a1c1e160w041C1J051M0x1M1O1J160Z0!0U0_0{0}0 0y0!0$0y0l1$0y0B14050;0t0l0T1X0|0~011#1%1)1%0B1/1;1-0B0t0u0Z1e1.0-1K0B0y0_1h0d0w0F0e0 0R011?1Z010M0?0T0e1p0T1-2e2g2l1^2o1;2r0I2t040a0o0H0-0u0w0u0d0!1k1m0/2c0-0-0T0f2O1C2v0e1K0x2a2!0B2827290Z2x0 1)0e2q2L1-1U1W0`1@2.0!2:0e241V1-0w2T1K2Y2!35172f1m2_2m2~0-1b0l140z2X3915382w3b1^3d3f140R3j2g3l2Y2-013q0F3g040n3u2Z163x3o0 3A3C0N3F3w393y3L140(3O3H3Q3J3z0u3e3B140S3V3m3a1Y3p3!3r040K3O1L331C2@2%0Z2+3y0f242D0.1V1K320T343k3=3~0/463n3,0 0v140/0M3=3I4d010i140o4j3X4l0e0M140I0u0J2q2:4q4c2`0113040p4B3+4D0e142~0B1A0Q2K0e0/2T1A4I3y4F0g0%3V0o4$4p4k4K140f190j0l4Q0u2|0B1B1D3k4(4r4D0u140)3O4`4C2m0I4u040,0+0,4#4%3*3R4+4-4/3~0T0M0M4@35514J2m4}044 4^3v5n3y0I0!14595t3G4%5v3Y4f040M3!505c3Y4F4H5B4b5o3p4M0u4O4W5M140D5K4)3c4+0u5i4i5P5L4l4Y5!4{5p4n042|5/525S044N4P4R4T0T4V5+5#1^4F4!5P065D5D5,4*044,0I4.4:4=5l4_6b5p140Y5s5m6l5`5h5j5^5R0 5q0W6v5d5{5U0T5a695E4s5e6f5g5(5j6j5u6r6x6n6p6k633K5%5)6F6H4D5G2T0B0j0-0e6A3Y4L6d5f6h0e4?6,4l5q0x6@6c6e6g6t5k3)0x49453?740x3_1C0B3{792)2#23252%0F1:763_1I5Q3y2T0I0Q0M0F0v0T0Q0y0n141u1w1y1A0o66371P3l0y0z0o0!0Z0 2N0T0-0F2O0V0d2g0d0V2|1U0f2D0m0B0s7R2O0o7V0e0^7Z0!7#050F3y0y0T0F4T2/4f0o0y2T0M0 037P7*0!1l7U7W7Y4S7;2t0o110B1;0 0H7Q1b2}0B0o7}140c0b1C0F2!7J3l1J0A7Q2M1l0o2T3~1F4S0s6E7H1T1V3y7{4w0e2N871m2|5I141I8O0Z8Q8S888g20042f0-3~6)0!0-0o0j1m6(0w1;1L8y040P7@3~7.2(0j2V8T8`8M2^4l1`1(1*1,7n3Y2z2q2s142F0#0f0-128o0H0J2a1l3=445Q3647739d4l5G5I0-6{2m5N5W6I6C5V625:645Y9E6s6M5*376V4E140g9P6x5=5@5P6!5$9J5}1l5 619T9M0 656Z6Q015q0+9_719y752!7l1N041A8o0s1y1V3B2q4O0o0C9541974D991|1+2u9/2n2p2B2D9j9l9n2G9q0y9s5+9u3*9w3v059|9U9B5J9$9?6.0T1;2C6=9Y9@9!6+aG9U6.5|0d4:4S7Q606O2Z9?9;676aaS5T9K5m9%1^5q6T6Pa*a1aKa89H4D4F0Ea`535y56a~9N040L9=a?6 aNa:aNaIa^aM9L5_9:14a}bf6w015x3hb2bhb4b6ak9^9`671C9|1P3@77427m0O1m320s0M0q2T7R8p7@445xbJ1=0U8B8T0+acbB0U7I7K7M7O4O86880FbS0f8b7!7$7(b(1mb*2U7L8c7=8~987`7|2|7~805i83857S8T0Vb?b,7:7#2k8(0T8j8l2ga88pb 8r8t0x8v1C8x7m8k0j0o0Z004=7)0h0Bac2@7^1*ah9c9?9fan9i0o9k9m0w9oatav37ax7G37aCak5G4hbp4m4oc!4t4v4x4z8K9.bg9V4Gc%a+9*aX4Ua!9za{9W7F3k685bb76:2K6ib94~aN545z58bsc.6.6}6L5)c_a.6R5rd7b05A35c 4$9?aE9DaRak6.0!b9aPbb0t147R0e0$c,479U9Gbk3RdB042Ac!dJc-blaT6DaV5~aY9-dHak4Y4Z6Za)dvc=dP9Odudc6X6ud-blbad;6BaUaW9,c_a$bic;5?d+bra(6Gdi3z6J6gd36=dh9?5q6obbd/9S6Ubt146zd@6-d*e36GaHe7dfd:6q9Ueda;2Ze5dd9Rdbbl6$0:6)aQevd)6/6K6;6?em6^146`eP6|6:b8bw723 2!axbX3lcC3Y8P1l8$8U4t5q8Ye)8!e+7Tcd1-1v048=2f0f0v1Ce`cu008=8f0j8^8K1Sa08}2c900-922W8LadcD1{9bajc.cI9h2EcLaqcOas9reI47cT475+cWd.9)e15ZeT9(eWeJc.d?fJdSc=dV9+dXd|dId~dKene0fV5-14b5eXbye#9 1Ja20oa40ja62Aa9abfhe(98cEflc`2mfo2CcKcMar9pfv9t3@cU9xeZerfD9$e5fLeifCd_dWc^e1bjdR6BdxfYc{b4gkdZc.bnb1go9Ff!3)b7eCfGa/d6gC6W9)fPc@aZgjd gngl5Xgqc!gu3igwb3f#dobxg8bz7kbCa0bE0obGbIbK7@0{g)7p0!bQ0obS0-8C0ebVfhe$167J7L7N01g@g_0V5I0e931l2:0l8)8Ag^8T0oh6h80eha8_b{afb}7Q8q7 8183h3c6hh2Ohk8ecdcf3#8ncj0e5G8s8u8w0z8{0*8D8F0u8H0Z8J0o1s0/0j0Xg)1c8-g^cu1=g.1)0d9Kf9f@aff_1}fmblf}aofrcNcPg3awg5fzcVg8aD4g5ic!5=4pgU3K554w4yhjdGaAfTc:i7e6gHd`fRe1d$epeAeseNebewgEfMdL141Ee15OgO9I5|d504elivfWfIgeeE149CaNdQgsfNgaiBgpfFiH9IiJied!9Wdy149#iW6cggfQgiih5.iog9de0Q6 isejdkgF3zdMiyi.14iAiQ6BiYezdriMaFi)gxigiT9(iDi 04iViKj3gBjcb39Xi{0udzi{dT4OgId{imeD3yeF6(6*efeLe84;eaiEeSj96seVjkc~gY4a9}3^g$770:0=0@04.