Élève en POO

On souhaite dans cet exercice créer une classe Eleve ayant quatre attributs :

  • un prénom prenom de type str ;

  • un nom nom de type str ;

  • une classe classe de type str ;

  • des moyennes moyennes de type dict. Ce dictionnaire associe à des intitulés de matières (str), les moyennes correspondantes (au format int ou float).

Cet exercice est en plusieurs parties et demande de compléter la classe Eleve en ajoutant différentes méthodes.

ajout_methodes_precedentes

A partir de la deuxième question, la fonction ajout_methodes_precedentes est appelée avant les tests afin de compléter votre travail en ajoutant les corrigés des questions précédentes à la classe Eleve.

Méthode __init__

Lors de la création d'un objet de type Eleve, on fournit les valeurs des attributs prenom, nom et classe (dans cet ordre).

L'attribut moyennes est initialement vide.

Compléter la méthode __init__ (aussi appelée « constructeur » en Python) de la classe Eleve.

Exemple
>>> albert = Eleve("Albert", "Einstein", "Te2")
>>> albert.prenom
'Albert'
>>> albert.nom
'Einstein'
>>> albert.classe
'Te2'
>>> albert.moyennes
{}

###(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

.128013s3o_bcdufvg/ly napS.r1me,(P2=4:}twki5hE{)6050h0y0H0r0K0n0b0p0g0n0r0b0b0D010H0K0s010406050b0i0x0x0r0v0o040t0d0n0i0+0d0q050m0=0@0_0{0:0s04141b051e0m1e1g1b0:0h0K0k0Z0#0%0)0M0K0l0M0n1u0M0H0.050U0f0n0y1p0$0(011t1v1x1v0H1D1F1B0H0f0d0h0{1C0v1c0H0M0Z0~0b0s0r0q0)0C011H1r010j0W0y0q0r0x0y1B1)1+1:1J1?1F1_1{0.0a0p0B0v0d0s0d0b0K110q0p0S1%0v0v0y0g2g141~0q1c0m1#2t0H1Z1Y1!0h200)1x0q1^2d1B1m1o0!1I2D0K2F0q1V1n1B0s2m1c2r2t2X0;1*2h2L1;2Q0v0^0n0.0w2q2#0/2!1 2%1J2)2+0.0C2/1+2;2r2C012_0r2,040c2}2s0:302@0)33350E382 2#313e0.0L3h3a3j3c320d2*340.0Q3h1d2V142J2w0h2A310g1V1|1c3C1f3A2Z152:053H0S2W3q1q1J0J0.2@3y3b3W0)0I0.0p3#3V2M320g0.0N1F0k0y3,2?3%010-040F3o0p413+3$3.3Y040S0j3_2$3{3)043+3P2~2=4b3.0j0x0.0e0e2O2f4o4a313}0A4t3r0f3}0b0y0n494g2s4i4u0.0z3h433-2(0.2U2G0x4x3{3}4K4F4e4H3r0q0.2Q4S4X4Z4U4J4L4*3.4#042@3^4)441;3}0P3 4X06424 4M3`3.4z0.4B4D4T3.0d0.0u584O044Q4%4-4^1J5a040D5i4N2^4P2m5h4}50424.1;5404564E2Z5j0)5l5c4@5p3d4$0d4(2X514j1;5l5n4X5P3k5L5N2:4~5v5V4y4A4C5C3Q5E015G5d5q4;3W4?5O5x5k0.5T5@5,4:4=405#5^0)5z5B5/5F5b66320.0x0d0o1^2F0b5o525R5`6i5Q1J3}0O0G3o143S0y2t4Q2t3L2u3E142x2w1U1W2w0r1E6v3B1n2;0m0S0U0W0b04.

###(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

.128013s3o_bcdufvg/ly napS.r1me,(P2=4:}twki5hE{)6050h0y0H0r0K0n0b0p0g0n0r0b0b0D010H0K0s010406050b0i0x0x0r0v0o040t0d0n0i0+0d0q050m0=0@0_0{0:0s04141b051e0m1e1g1b0:0h0K0k0Z0#0%0)0M0K0l0M0n1u0M0H0.050U0f0n0y1p0$0(011t1v1x1v0H1D1F1B0H0f0d0h0{1C0v1c0H0M0Z0~0b0s0r0q0)0C011H1r010j0W0y0q0r0x0y1B1)1+1:1J1?1F1_1{0.0a0p0B0v0d0s0d0b0K110q0p0S1%0v0v0y0g2g141~0q1c0m1#2t0H1Z1Y1!0h200)1x0q1^2d1B1m1o0!1I2D0K2F0q1V1n1B0s2m1c2r2t2X0;1*2h2L1;2Q0v0^0n0.0w2q2#0/2!1 2%1J2)2+0.0C2/1+2;2r2C012_0r2,040c2}2s0:302@0)33350E382 2#313e0.0L3h3a3j3c320d2*340.0Q3h1d2V142J2w0h2A310g1V1|1c3C1f3A2Z152:053H0S2W3q1q1J0J0.2@3y3b3W0)0I0.0p3#3V2M320g0.0N1F0k0y3,2?3%010-040F3o0p413+3$3.3Y040S0j3_2$3{3)043+3P2~2=4b3.0j0x0.0e0e2O2f4o4a313}0A4t3r0f3}0b0y0n494g2s4i4u0.0z3h433-2(0.2U2G0x4x3{3}4K4F4e4H3r0q0.2Q4S4X4Z4U4J4L4*3.4#042@3^4)441;3}0P3 4X06424 4M3`3.4z0.4B4D4T3.0d0.0u584O044Q4%4-4^1J5a040D5i4N2^4P2m5h4}50424.1;5404564E2Z5j0)5l5c4@5p3d4$0d4(2X514j1;5l5n4X5P3k5L5N2:4~5v5V4y4A4C5C3Q5E015G5d5q4;3W4?5O5x5k0.5T5@5,4:4=405#5^0)5z5B5/5F5b66320.0x0d0o1^2F0b5o525R5`6i5Q1J3}0O0G3o143S0y2t4Q2t3L2u3E142x2w1U1W2w0r1E6v3B1n2;0m0S0U0W0b04.
Méthode modifie_moyenne

La méthode modifie_moyenne prend deux paramètres, un intitulé de matière (str) et une moyenne (au format int ou float) et ajoute ce couple (clé: valeur) à l'attribut moyennes d'un objet Eleve.

Écrire la méthode modifie_moyenne.

Exemple
>>> carl = Eleve("Carl Friedrich", "Gauss", "Te3")
>>> carl.modifie_moyenne("arithmétique", 20)
>>> carl.modifie_moyenne("chimie", 12)
>>> carl.moyennes
{'arithmétique': 20, 'chimie': 12}
>>> carl.modifie_moyenne("chimie", 13)
>>> carl.moyennes
{'arithmétique': 20, 'chimie': 13}

###(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

.128013s3o_8bcdufvg/ly n7apS.r1me,(P2=4:}twki9][5hE{)6050i0A0J0t0M0o0b0q0h0o0t0b0b0F010J0M0u010406050b0j0z0z0t0x0p040v0d0o0j0:0d0r050n0`0|0~100^0u04191g051j0n1j1l1g0^0i0M0l0(0*0,0.0R0M0m0R0o1z0R0J0?050Z0g0o0A1u0+0-011y1A1C1A0J1I1K1G0J0g0d0i101H0x1h0J0R0(130b0u0t0r0.0E011M1w010k0#0A0r0t0z0A1G1.1:1^1O1{1K1~200?0a0q0D0x0d0u0d0b0M160r0q0X1,0x0x0A0h2l19230r1h0n1*2y0J1(1%1)0i250.1C0r1}2i1G1r1t0)1N2I0M2K0r1!1s1G0u2r1h2w2y2$0_1/2m2Q1_2V0x0}0o0?0y2v2*0@2)242,1O2.2:0?0E2@1:2_2w2H012~0t2;040c322x0^352|0.383a0G3d342*363j0?0Q3m3f3o3h370d2/390?0V3t2`2+1v2}3y2 040s3D3g3G3i3I3A040f3M3v3O3x3z3a0N3m1i2!192O2B0i2F360h1!211h3)1k3%2(1a2^053.0X2#3V2R010L0?2|3#3N400K0?0q453 2-0h0?0S1K0l0A4b2{3W0=040H3t0q4r4a461_42040X0k4k3F47494A360k0z0?0e0e2T2k4J4E3w4n0C4O3W0g4n0b0A0o4z3_333E364n0B3m4t4c2}0?2Z2L0z4S404(4*4$3w0r0?2V4;4!2x4_4m0?4)4 044+4l404{042|4j55514?0?0U4p55064s5m574B1_4U0?4W4Y4=1_0d0?0w5v4-044/4}4^4u1O5x040F5F4,3i4.2r5E5k5n4s5f5q4V4X4Z2(5G0.5I5z5e5!374|0d4~2$5o365I5K555/4`5+5-2^5l5S5@4T5W5u5(5M015$5A5N5b3G5d5.5U5H0?5=6b5)5a5c4q5}6c0.5r045t5Y3`5)6562582-0?0z0d0p1}2K0b5L6w6d5J6F5p1O4n0T0I3t5|4r6m410?4y660148566W0r0k6y2W1{0A0e6z6B0r2K6W4Q6W6o6q6:536J3p6y0t0:0A2r6^04546g635a6,6C6a6s634n5i6k5S6S6?5X6W6u5Z756%6-6D710P6!6|6~706v6K0.4n0O6`3w5;7B3W766A783D0n3|0A2y4/2y3=2z3+192C2B1Z1#2B0t1J7M3(1s2_0n0X0Z0#0b04.

###(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

.128013s3o_8bcdufvg/ly n7apS.r1me,(P2=4:}twki9][5hE{)6050i0A0J0t0M0o0b0q0h0o0t0b0b0F010J0M0u010406050b0j0z0z0t0x0p040v0d0o0j0:0d0r050n0`0|0~100^0u04191g051j0n1j1l1g0^0i0M0l0(0*0,0.0R0M0m0R0o1z0R0J0?050Z0g0o0A1u0+0-011y1A1C1A0J1I1K1G0J0g0d0i101H0x1h0J0R0(130b0u0t0r0.0E011M1w010k0#0A0r0t0z0A1G1.1:1^1O1{1K1~200?0a0q0D0x0d0u0d0b0M160r0q0X1,0x0x0A0h2l19230r1h0n1*2y0J1(1%1)0i250.1C0r1}2i1G1r1t0)1N2I0M2K0r1!1s1G0u2r1h2w2y2$0_1/2m2Q1_2V0x0}0o0?0y2v2*0@2)242,1O2.2:0?0E2@1:2_2w2H012~0t2;040c322x0^352|0.383a0G3d342*363j0?0Q3m3f3o3h370d2/390?0V3t2`2+1v2}3y2 040s3D3g3G3i3I3A040f3M3v3O3x3z3a0N3m1i2!192O2B0i2F360h1!211h3)1k3%2(1a2^053.0X2#3V2R010L0?2|3#3N400K0?0q453 2-0h0?0S1K0l0A4b2{3W0=040H3t0q4r4a461_42040X0k4k3F47494A360k0z0?0e0e2T2k4J4E3w4n0C4O3W0g4n0b0A0o4z3_333E364n0B3m4t4c2}0?2Z2L0z4S404(4*4$3w0r0?2V4;4!2x4_4m0?4)4 044+4l404{042|4j55514?0?0U4p55064s5m574B1_4U0?4W4Y4=1_0d0?0w5v4-044/4}4^4u1O5x040F5F4,3i4.2r5E5k5n4s5f5q4V4X4Z2(5G0.5I5z5e5!374|0d4~2$5o365I5K555/4`5+5-2^5l5S5@4T5W5u5(5M015$5A5N5b3G5d5.5U5H0?5=6b5)5a5c4q5}6c0.5r045t5Y3`5)6562582-0?0z0d0p1}2K0b5L6w6d5J6F5p1O4n0T0I3t5|4r6m410?4y660148566W0r0k6y2W1{0A0e6z6B0r2K6W4Q6W6o6q6:536J3p6y0t0:0A2r6^04546g635a6,6C6a6s634n5i6k5S6S6?5X6W6u5Z756%6-6D710P6!6|6~706v6K0.4n0O6`3w5;7B3W766A783D0n3|0A2y4/2y3=2z3+192C2B1Z1#2B0t1J7M3(1s2_0n0X0Z0#0b04.
Méthode moyenne_de

La méthode moyenne_de prend en unique paramètre un intitulé de matière (str) et renvoie la moyenne de cet élève dans cette matière.

Si l'élève ne possède pas de moyenne dans cette matière, la fonction renverra None.

Écrire la méthode moyenne_de.

Exemple
>>> donald = Eleve("Donald", "Knuth", "Te7")
>>> donald.modifie_moyenne("informatique", 20)
>>> donald.modifie_moyenne("musique", 13)
>>> donald.moyenne_de("informatique")
20
>>> donald.moyenne_de("musique")
13
>>> donald.moyenne_de("lancer de javelot")
>>>

###(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

.128013s3o_;8bcdufvg/0lyq n7AaêpS.r1meh,(P2=4:}Ntwki9][5RE{)é6050j0F0Q0x0T0q0b0t0i0q0x0b0b0L010Q0T0z010406050b0k0E0E0x0C0r040A0d0q0k0{0d0u0t020x0E0z0f0t0Y0F150C0s0k0F0b050o12141618100z041w1D051G0o1G1I1D100j0T0m0:0=0@0_0G0T0n0G0q1W0G0Q0~050+0h0q0F1R0?0^011V1X1Z1X0Q1)1+1%0Q0h0d0j181(0C1E0Q0G0:1b0b0z0x0u0_0K011-1T010l0-0F0u1j0F1%282a2f1/2i1+2l0E2n040a0t0J0C0d0z0d0b0T1e1g0)260C0C0F0i2I1w2p0u1E0o242U0Q2221230j2r0_1Z0u2k2F1%1O1Q0;1.2(0T2*0u1~1P1%0z2N1E2S2U2 11291g2:2g2^0C150q0~0t0D2R330 322q351/37393b0K3e2a3g2S2%013l0x3a040t0c3p2T103s3j0_3v3x0t0M3B3r333t3H3b0X3L3D3N3F3u0d383w3b0%3S3h341S3k3X3m3y0v3$3E3)3G3+3Z3y0g3/3U3;3W3Y3I0U3`3i3|3P040D0p413(2;3}3,0D3d1x3f3T424a440D3o4f3q4h49363?3x0D3A4n3C3%3O4s0~0D3K4w3M4i4r3~4B3R4E1F2}1w2.2X0j2#3t0i1~2x0(1P1E2|0F2~3f3L054U0)4$4G1/0S0~3j4(3:4a0R3b4=3{4j0i0~0Z1+0m0F4`4-0_0}040N3S0t5a0t4y3V4/040)0l534q1/4^3y5j3t0l0E0~0e0e2?2H5t5o3V560I5y3|0h560b0F0q5i4L4?2g560H3L5c5L3k0~4!2^0E5C4a5N5P5d430~5V5X5M0~5O4E5Q4{364:3)525K5/1/560#584E065b5 5.54015E0~5G5I5)1/0d0~0B683G5T2N5(5-5#4a6a040L5!5R6e045U0d5W5}605b6j2g6404665J316p016l6c5@620u5%6t6o5^0_6l6n6i6F6L046h2 5~6w615k0_6A6C6d6G6b6*6V3j5?2 6#3t6R6O6K5;1.6:4g6!6=3V6(5H6D4%6F6H6-0~0E0d0r2k2*1v6T6P6+6m6^6$01560!0O3S6Z5a6y4.0~5h6*5m5c6J7k0u0l782_2i0F0e797b0u2*6*5A6*71677z3t5Z7f6_04150{0F2N7M5+7j3O7D7J7L7R5z0~5{596!7s6%5F726*767,5$7W7a7c1u7#040W777W0x7Y7!7{5Y0~0V7%3V6@7U7A7)7 7p5 7=015f7v892g7x6-7C7}7*7G0)815B8q1/7P733q8m7T6;8m6V7X0T7Z6|8F6F5`5|6Y6~8m5f0T8E2T6 7|8L8N8d3|0d5m2?8(4a8D7_6,8B6q7I7 7e6E7g568S6}6~6x6F5f2N0Q0k0C0u8-6z7@7Q8`627`9c8h8v8^81838=3u78868M889f7S8b7:6w8V0~5H5G818}4o8 907g920*95978g3t0S4}040P1f8O4x0o4*4#4M9V0o4P1w0Q4R9!2Z2V1}1 2X0x1*9X4P1C4,7k2N0E0e0l0x0S7G0G0c0~1o1q1s1u0t9B2T1F3g1D9P0Q1f0b0H0t1s002k2A0r241faf0k2*0t0l1f2P0T1f0t0b2a0/4)4V3t1;1Y1!1$9=9L0~939I4(9T4V3y6g0m0d8M0t290C0t0j0$9`1d5c9UaD1!1?1#2o9F9N9P7+31aO4+6I1M1H040w2?2G0t1+262K2|0$0i0$0)0u0QaV0d950C0,b90y2Y1,b40C2Haxaza 1,aB2K3VaEa+aH9w049y9R2U9U3y1s0Tax7Zbe0t0n0$0C0$0t0T1k1Z0i2H1p2kb95|a_2.a)1=aG2{4Na=31bBbw8p9r3V8s9l7B8i7K8xbz8G0~8Ab-5D9a8YaI7-045,8I6U9n87b^8Q7.a60 8l910~8X985S85c7ch6Q8+9Jc47g8/9l9e747g8K7~b?8_cu628|9u60bwaL96cl63b~8:046Ib|4jb=7d9j848$9qcA7k568c5}1wb*1J4N9Y4Y109Y0*0,0.04.

###(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

.128013s3o_;8bcdufvg/0lyq n7AaêpS.r1meh,(P2=4:}Ntwki9][5RE{)é6050j0F0Q0x0T0q0b0t0i0q0x0b0b0L010Q0T0z010406050b0k0E0E0x0C0r040A0d0q0k0{0d0u0t020x0E0z0f0t0Y0F150C0s0k0F0b050o12141618100z041w1D051G0o1G1I1D100j0T0m0:0=0@0_0G0T0n0G0q1W0G0Q0~050+0h0q0F1R0?0^011V1X1Z1X0Q1)1+1%0Q0h0d0j181(0C1E0Q0G0:1b0b0z0x0u0_0K011-1T010l0-0F0u1j0F1%282a2f1/2i1+2l0E2n040a0t0J0C0d0z0d0b0T1e1g0)260C0C0F0i2I1w2p0u1E0o242U0Q2221230j2r0_1Z0u2k2F1%1O1Q0;1.2(0T2*0u1~1P1%0z2N1E2S2U2 11291g2:2g2^0C150q0~0t0D2R330 322q351/37393b0K3e2a3g2S2%013l0x3a040t0c3p2T103s3j0_3v3x0t0M3B3r333t3H3b0X3L3D3N3F3u0d383w3b0%3S3h341S3k3X3m3y0v3$3E3)3G3+3Z3y0g3/3U3;3W3Y3I0U3`3i3|3P040D0p413(2;3}3,0D3d1x3f3T424a440D3o4f3q4h49363?3x0D3A4n3C3%3O4s0~0D3K4w3M4i4r3~4B3R4E1F2}1w2.2X0j2#3t0i1~2x0(1P1E2|0F2~3f3L054U0)4$4G1/0S0~3j4(3:4a0R3b4=3{4j0i0~0Z1+0m0F4`4-0_0}040N3S0t5a0t4y3V4/040)0l534q1/4^3y5j3t0l0E0~0e0e2?2H5t5o3V560I5y3|0h560b0F0q5i4L4?2g560H3L5c5L3k0~4!2^0E5C4a5N5P5d430~5V5X5M0~5O4E5Q4{364:3)525K5/1/560#584E065b5 5.54015E0~5G5I5)1/0d0~0B683G5T2N5(5-5#4a6a040L5!5R6e045U0d5W5}605b6j2g6404665J316p016l6c5@620u5%6t6o5^0_6l6n6i6F6L046h2 5~6w615k0_6A6C6d6G6b6*6V3j5?2 6#3t6R6O6K5;1.6:4g6!6=3V6(5H6D4%6F6H6-0~0E0d0r2k2*1v6T6P6+6m6^6$01560!0O3S6Z5a6y4.0~5h6*5m5c6J7k0u0l782_2i0F0e797b0u2*6*5A6*71677z3t5Z7f6_04150{0F2N7M5+7j3O7D7J7L7R5z0~5{596!7s6%5F726*767,5$7W7a7c1u7#040W777W0x7Y7!7{5Y0~0V7%3V6@7U7A7)7 7p5 7=015f7v892g7x6-7C7}7*7G0)815B8q1/7P733q8m7T6;8m6V7X0T7Z6|8F6F5`5|6Y6~8m5f0T8E2T6 7|8L8N8d3|0d5m2?8(4a8D7_6,8B6q7I7 7e6E7g568S6}6~6x6F5f2N0Q0k0C0u8-6z7@7Q8`627`9c8h8v8^81838=3u78868M889f7S8b7:6w8V0~5H5G818}4o8 907g920*95978g3t0S4}040P1f8O4x0o4*4#4M9V0o4P1w0Q4R9!2Z2V1}1 2X0x1*9X4P1C4,7k2N0E0e0l0x0S7G0G0c0~1o1q1s1u0t9B2T1F3g1D9P0Q1f0b0H0t1s002k2A0r241faf0k2*0t0l1f2P0T1f0t0b2a0/4)4V3t1;1Y1!1$9=9L0~939I4(9T4V3y6g0m0d8M0t290C0t0j0$9`1d5c9UaD1!1?1#2o9F9N9P7+31aO4+6I1M1H040w2?2G0t1+262K2|0$0i0$0)0u0QaV0d950C0,b90y2Y1,b40C2Haxaza 1,aB2K3VaEa+aH9w049y9R2U9U3y1s0Tax7Zbe0t0n0$0C0$0t0T1k1Z0i2H1p2kb95|a_2.a)1=aG2{4Na=31bBbw8p9r3V8s9l7B8i7K8xbz8G0~8Ab-5D9a8YaI7-045,8I6U9n87b^8Q7.a60 8l910~8X985S85c7ch6Q8+9Jc47g8/9l9e747g8K7~b?8_cu628|9u60bwaL96cl63b~8:046Ib|4jb=7d9j848$9qcA7k568c5}1wb*1J4N9Y4Y109Y0*0,0.04.
Méthode moyenne_simple

La méthode moyenne_simple calcule et renvoie la moyenne générale de l'élève. Celle-ci se calcule en effectuant la moyenne des moyennes.

Si l'élève n'a aucune moyenne, la fonction renverra None.

Écrire la méthode moyenne_simple.

Exemple
>>> jane = Eleve("Jane", "Goodall", "Te3")
>>> jane.modifie_moyenne("éthologie", 20)
>>> jane.modifie_moyenne("théorie des groupes", 14)
>>> jane.moyenne_simple()
17.0

###(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

.128013s3_8ufvy n7aêS1me(P24C:twi][hE)6o;bcdg/0làqAp.r,}=+Nk{95Rxé050L0r0y0m0A0P0b0j0K0P0m0b0b0Y010y0A0T010406050b0f0q0q0m0V0i040o0H0P0f0 0H0k0j020m0q0T0I0j0)0r190V0R0f0r0b050N16181a1c140T041A1H051K0N1K1M1H140L0A0h0@0_0{0}0D0A0M0D0P1!0D0y12050/0J0P0r1V0`0|011Z1#1%1#0y1-1/1+0y0J0H0L1c1,0V1I0y0D0@1f0b0T0m0k0}0u011;1X010g0;0r0k1n0r1+2c2e2j1?2m1/2p0q2r040a0j0t0V0H0T0H0b0A1i1k0-2a0V0V0r0K2M1A2t0k1I0N282Y0y2625270L2v0}1%0k2o2J1+1S1U0^1=2,0A2.0k221T1+0T2R1I2W2Y33152d1k2@2k2|0V190P120j0p2V3713362u391?3b3d3f0u3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0v3F3v373x3L3f0(3P3H3R3J3y0H3c3A3f0G3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040p0O453,2^413:0p3h1B3j3X464e480p3s4j3u4l4d3a3`3B0p3E4r3G3+3S4w120p3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0p444*4K3.4S0u4b4:4u4=3:0u4i334Q4X4%0u4q351N311A2=2#0L2)3x0K222B0,1T1I300r323j3P055e0-5m4;0}0#123n5o4#2k0z3f5y4+3a0K120E1/0h0r5D5t0111040x3W0j5T0j4W405v040-0g5M4`0}5B3C5$3x0g0q120d0d2`2L5:5+3Z5P0s5^400J5P0b0r0P5#4I5W4e5P0W3P5V5z3o125k2|0q5|6612684I6a5E6c046f6h2k6769653a5w3-5L646b0}5P0F5R4P5U6H6m5N5~1260626r1?0H120U6P3K6d2R6q6l6v6Q120Y6u6B3y6W2/6g6G6I5T6!0}6L046N63356)6R046T6A6n6V6p0H6-336J5%016|6%6Z6)0k126Y4 6/6:6)6?6^6U786S7m7d043n6z756;7n047a7u7c6x1=7t4k7h763x7k616_5n6{7o6 5N7q0q0H0i2o2.1z7b707w7y3j7G5_120$0X3W066H7v5Y5!7m5)5V7O770k0g127R1S2m0r0d7R7T0k2.7m5`7m7I6O7@3x6t7X7P7{0m0 0r2R856j6(7Y7Q7S7U7D3u7v6D6F7g7h7v887K8s7M6}7p7{8p831y8k040C8E04198h8j8a7%040B8m5N798V7^8F82844P7,5U7.127:8R407=7p7`8N8G2.0d0-8J5{8-4e8z8J6k7z8n8f8P8r2X8t126E5S8x6)5Y0A8A2X7$47930A8i955*6{5)2`8Y7H5 7J7m6|6~6`928=8#8I8|6s128v7E7F8)9c122R0y0f0V0k9r3Z8~9D6#8D9U71818q7W9y5N5P8L9X6*8N8g9k8Q9$775P8U8%7-9K5Z0r9f5s778/9*7_8!8q0d2K1o1/8`879t899:8b989G4s7F8*049e9R470J122ya89*9Tac3Z9w8M9Z8H9#7L7Y6Dal4e6|020M0y0IaD2k0q0A124^at405Paf3G9I9J9z0y0H0/0PaK9V7!3u9h4eaMaO9aaVai0g3#a$9Y7Sa?789p9Q8d77asaA8W7NaQ4na2ay9vb2b08Z040h3A1xaz8BaB120s996.aV9^aXaZ3Aa_6|0Za(9g7v8o0ia.9Iai9M9Oa|918e04aYa!br120Na_0kan04ap9*86araa9|7vava0b57V8J0Fbzbn5N5Y61608JaT13bma*2k5YbC9Pa_0#5G040!1j9m140N5q5l1J570N591A0y5bc92%2Z21232#0m1.c4c75i1G9}3x2R0q0d0g0m0#7 0D0c121s1u1w1y0jb/1J3k1H0w732A0j2`1S1w0+0j0L2e0?0P000r0*8i0K0A0K1:300+0K0+0-0k0y0W0j1/5Vc33x1^1$1(1*co3Zb+0=9m975Qb`9L0.bDb`b|b~8$55c33C0T0r1h0j0n2$1:730A0b6~1Q1L040S2`2Kc:1:c?c(c*c,0y0j1ydB0+1w1T3A2odB0QcEcG1R1Tc@1(1`1)2 575535dcai8,b35A5Ca08;ax8@a50Ta7bSbia96M9ud/04bk8w7i7Y9d9|b=3obPbRd#1?bTe36=bVb79We69+d*9CebaCa}3xaFaHaJeh3Za,04aPb9add2bl6Ibw12bIbqem408XeAa+aNepb(aWb*12a;0VbN8!bra{a_a bgb1eaer4Xb!eeeWeBb8eTbabc1geZe%esbjb/8(a/7AbHbpa#eD2kbsbu9n9z81eHd{eJ04b^bE7#ewe?bJe_9VbMfa3Ke12oaqebeS968C9xe!b49A9!b$3*c25f2Y5k2Y59c10-0/0;0b04.

###(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

.128013s3_8ufvy n7aêS1me(P24C:twi][hE)6o;bcdg/0làqAp.r,}=+Nk{95Rxé050L0r0y0m0A0P0b0j0K0P0m0b0b0Y010y0A0T010406050b0f0q0q0m0V0i040o0H0P0f0 0H0k0j020m0q0T0I0j0)0r190V0R0f0r0b050N16181a1c140T041A1H051K0N1K1M1H140L0A0h0@0_0{0}0D0A0M0D0P1!0D0y12050/0J0P0r1V0`0|011Z1#1%1#0y1-1/1+0y0J0H0L1c1,0V1I0y0D0@1f0b0T0m0k0}0u011;1X010g0;0r0k1n0r1+2c2e2j1?2m1/2p0q2r040a0j0t0V0H0T0H0b0A1i1k0-2a0V0V0r0K2M1A2t0k1I0N282Y0y2625270L2v0}1%0k2o2J1+1S1U0^1=2,0A2.0k221T1+0T2R1I2W2Y33152d1k2@2k2|0V190P120j0p2V3713362u391?3b3d3f0u3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0v3F3v373x3L3f0(3P3H3R3J3y0H3c3A3f0G3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040p0O453,2^413:0p3h1B3j3X464e480p3s4j3u4l4d3a3`3B0p3E4r3G3+3S4w120p3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0p444*4K3.4S0u4b4:4u4=3:0u4i334Q4X4%0u4q351N311A2=2#0L2)3x0K222B0,1T1I300r323j3P055e0-5m4;0}0#123n5o4#2k0z3f5y4+3a0K120E1/0h0r5D5t0111040x3W0j5T0j4W405v040-0g5M4`0}5B3C5$3x0g0q120d0d2`2L5:5+3Z5P0s5^400J5P0b0r0P5#4I5W4e5P0W3P5V5z3o125k2|0q5|6612684I6a5E6c046f6h2k6769653a5w3-5L646b0}5P0F5R4P5U6H6m5N5~1260626r1?0H120U6P3K6d2R6q6l6v6Q120Y6u6B3y6W2/6g6G6I5T6!0}6L046N63356)6R046T6A6n6V6p0H6-336J5%016|6%6Z6)0k126Y4 6/6:6)6?6^6U786S7m7d043n6z756;7n047a7u7c6x1=7t4k7h763x7k616_5n6{7o6 5N7q0q0H0i2o2.1z7b707w7y3j7G5_120$0X3W066H7v5Y5!7m5)5V7O770k0g127R1S2m0r0d7R7T0k2.7m5`7m7I6O7@3x6t7X7P7{0m0 0r2R856j6(7Y7Q7S7U7D3u7v6D6F7g7h7v887K8s7M6}7p7{8p831y8k040C8E04198h8j8a7%040B8m5N798V7^8F82844P7,5U7.127:8R407=7p7`8N8G2.0d0-8J5{8-4e8z8J6k7z8n8f8P8r2X8t126E5S8x6)5Y0A8A2X7$47930A8i955*6{5)2`8Y7H5 7J7m6|6~6`928=8#8I8|6s128v7E7F8)9c122R0y0f0V0k9r3Z8~9D6#8D9U71818q7W9y5N5P8L9X6*8N8g9k8Q9$775P8U8%7-9K5Z0r9f5s778/9*7_8!8q0d2K1o1/8`879t899:8b989G4s7F8*049e9R470J122ya89*9Tac3Z9w8M9Z8H9#7L7Y6Dal4e6|020M0y0IaD2k0q0A124^at405Paf3G9I9J9z0y0H0/0PaK9V7!3u9h4eaMaO9aaVai0g3#a$9Y7Sa?789p9Q8d77asaA8W7NaQ4na2ay9vb2b08Z040h3A1xaz8BaB120s996.aV9^aXaZ3Aa_6|0Za(9g7v8o0ia.9Iai9M9Oa|918e04aYa!br120Na_0kan04ap9*86araa9|7vava0b57V8J0Fbzbn5N5Y61608JaT13bma*2k5YbC9Pa_0#5G040!1j9m140N5q5l1J570N591A0y5bc92%2Z21232#0m1.c4c75i1G9}3x2R0q0d0g0m0#7 0D0c121s1u1w1y0jb/1J3k1H0w732A0j2`1S1w0+0j0L2e0?0P000r0*8i0K0A0K1:300+0K0+0-0k0y0W0j1/5Vc33x1^1$1(1*co3Zb+0=9m975Qb`9L0.bDb`b|b~8$55c33C0T0r1h0j0n2$1:730A0b6~1Q1L040S2`2Kc:1:c?c(c*c,0y0j1ydB0+1w1T3A2odB0QcEcG1R1Tc@1(1`1)2 575535dcai8,b35A5Ca08;ax8@a50Ta7bSbia96M9ud/04bk8w7i7Y9d9|b=3obPbRd#1?bTe36=bVb79We69+d*9CebaCa}3xaFaHaJeh3Za,04aPb9add2bl6Ibw12bIbqem408XeAa+aNepb(aWb*12a;0VbN8!bra{a_a bgb1eaer4Xb!eeeWeBb8eTbabc1geZe%esbjb/8(a/7AbHbpa#eD2kbsbu9n9z81eHd{eJ04b^bE7#ewe?bJe_9VbMfa3Ke12oaqebeS968C9xe!b49A9!b$3*c25f2Y5k2Y59c10-0/0;0b04.
Méthode moyenne_ponderee

La méthode moyenne_ponderee prend comme unique paramètre un dictionnaire coeffs associant des intitulés de matières (str) à des coefficients (au format int ou float).

Cette fonction calcule la moyenne pondérée de l'élève en appliquant les coefficients fournis en paramètre.

Si l'élève n'a aucune moyenne, la fonction renverra None.

Si l'élève possède une moyenne dans une matière à laquelle n'est associée aucun coefficient dans le dictionnaire coeffs, la fonction générera une erreur de type ValueError.

Écrire la méthode moyenne_ponderee.

Générer une erreur

Il est possible de générer une erreur de type ValueError en utilisant la structure suivante :

if condition_causant_une_erreur:
    raise ValueError("Texte d'explication")

Il existe de nombreux types d'erreurs différents selon le problème rencontré.

Exemple
>>> margaret = Eleve("Margaret", "Hamilton", "Te5")
>>> margaret.modifie_moyenne("études spatiales", 20)
>>> margaret.modifie_moyenne("maths", 14)
>>> coeffs = {"études spatiales": 1, "maths": 0.5}
>>> margaret.moyenne_ponderee(coeffs)
18.0

###(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

.128013s3_8ufvIy n7aêS1me(P2C4:Vtwi][hE*)6o;bcdg/0làqAp.r,}=+Nk{95Rxé050O0s0A0n0C0S0b0k0N0S0n0b0b0#010A0C0W010406050b0f0r0r0n0Y0j040p0K0S0f120K0l0k020n0r0W0L0k0,0s1c0Y0U0f0s0b050Q191b1d1f170W041D1K051N0Q1N1P1K170O0C0h0`0|0~100F0C0P0F0S1%0F0A15050=0M0S0s1Y0}0 011$1(1*1(0A1:1=1.0A0M0K0O1f1/0Y1L0A0F0`1i0b0W0n0l100v011@1!010g0@0s0l1q0s1.2f2h2m1_2p1=2s0r2u040a0k0u0Y0K0W0K0b0C1l1n0:2d0Y0Y0s0N2P1D2w0l1L0Q2b2#0A29282a0O2y101*0l2r2M1.1V1X0{1^2/0C2;0l251W1.0W2U1L2Z2#36182g1n2`2n2 0Y1c0S150k0q2Y3a16392x3c1_3e3g3i0v3l2h3n2Z2.013s0n3h040k0c3w2!173z3q103C3E0k0x3I3y3a3A3O3i0+3S3K3U3M3B0K3f3D3i0J3Z3o3b1Z3r3(3t3F0m3-3L3:3N3=3*3F0e3_3#3{3%3)3P0*413p433W040q0R483/2{443?0q3k1E3m3!494h4b0q3v4m3x4o4g3d3}3E0q3H4u3J3.3V4z150q3R4D3T4p4y454I3Y4L4w4G4P4c3,4S4F3$4r3^4Y3`4q4H4c404%424)4V0q474-4N3;4V0v4e4?4x4^3?0v4l364T4!4*0v4t524Z4a554C584(4O4 4K5d4.5f3~0v4R5i4@3|4_4X5o4}5q4 4$5t4U4 4,5y544_4=5C5a4V0c4{5G4/3?0c514n595M3~0c575Q5e4~5T5c3m1M341D2^2(0O2,3A0N252E0/1W1L330s355#4L055.0:5_5p010(153q3S5R2n0B3i655X3N0N150G1=0h0s6a5j1_14040y3Z0k6q0k661_62040:0g6j60683F6z5u2o0r150d0d2}2O6I6D3A6m0t6N3$0M6m0b0s0S6y5{6b016m0Z3S6s6!0l155@2 0r6R436$6(6t3N156.6:4h6=4L6)6k6^043q6i6Z706#150I6o4S6r7c6 606T156V6X6{2n0K150X7k3r6,2U6`6~6@017m040#6?6*7r2=6/7b7d6q7v7g047i6Y386!7x7o75606+047t367e6E7x7z7u7B7U0K7E527G7H6!7J7L7p107P7:3B633:747W7v7Z7A767T736p7+7I6U6W7M5#7O7n7?7T0r0K0j2r2;1C7#767}8j606m0)0!3Z067c7v6v6x7?6B6s7R6E0l0g158d1V2p0s0d8d8f0l2;7?6P7?7.868O156%8m8B8E0n120s2U8T048V7{7$8K8g7`88766m79827G847h8S8A3A7=8{4!8E8e8-8i7N8:150E8b8Y8!8$8~6;150D7~608l8*7 908L8N4S8s6r8u158w9c4h8y8b8D048,8M8I0:8%6Q9u2n8R7j9G6l8U9g8X9z8Z0C8#8.3x7v8;7a7*836!6v0C873x7X3V999R9b9j9h6B2}9N3A9I9%2!7|8a9K719A8h8%9X4n7+7d9r042U0A0f0Y0l9=6S859J949h9{ag9O9~1B8%979|7@9P9a9T9_6!6m9f9o8t9!9s0s9^5 6E9wap8C9l8-0d2N1r1=9E8QaeaD9V78a14va3a59$ac4a0M152BaPap9@7?8}aj9*9z919B938/8n78a!4h7x020P0A0La`2n0r0C155Ka@6E6maV3Ja3az9k040A0K0=0Sb11_9i3m9)3$b3b58?bca50g3(bk9}8ebx7w9:ab8W9?aRa,aib7a/ala?9U89047Qa.8 040h3D1AbMau95040t8=7Fbca47$bgbibA7x0$7!9.akbzb%btaAa60;a9bDb;a/b+3Db-150QbA0la$04a(ap8Pa*bGapa-bJbSbL8%0I8rbd608vaC8x69aH9yal0d2L0l0:2UataE6O159FbR43a+ca9MbEbS5.aC0gbXcB3$9Wbscm6E9#aDboa#a%2ra)cF4hcHc%7lbIbNbecicI04ckcK43a|a~b0c?4hbq04b6c-a^6ncT9Zbec0bjc{c+7ybAc}c bbb(cY4q15d60dcM0gcOc2dad81_dcd38@b_bv0Yc59+9Sb-bCbAc)cgc@c,bY7SaJa=a0dtb^76cWdyar9,cAdg7l6B2 0AdB159;dq71dldnc:ba16dfdOcn150Y0?6Vc52E0zbV0s0G2Tbwc:cEdF4h0b2k04010i0S0k1c0l1z1?0n0fea0K2}0_0f3b0KcN0C0N9R0l1-cjdNaXb*bhc1d%7w15b/dDcdc*bldHcQ4adK9 c:aoeG9}9QdAc:axb~3$7x0HdRd)cPaT04eOe23ddz9-e)9L04eUa2d.9qexbidkendmcPdVeH04eDeA80e`d*eP77e%98dSeSf5aweve?dPd;b{aadRd6doc4f1diey0Se_cNcP9pduff046Wd@d+fd7,fwa7b|bA0(6d040%1mcA170Q5}5^5$fQ0Q5)1D0A5+fV2*2$24262(0n1;fS5)1JeJ4h2U0r0d0g0n0(8I0F0c151v1xed0_d,1M3n1K0w7(2D0k2}1V1z0.0k0O2h0_0S000s0-8#eq0N1?330.0N0.0:es0Z0k1=6sfP3A1{1)1+1-f-2n6vfycAe$d,e}106vfEfieAfH15fK9n38fO5/3F0W0s1k0k0o2)1?7(0C0b7Q1T1O040Vej0Cgv1?gygogqgs0A0k1Bg}0.1z1W3D2rg}0T0k7ag.2^gz1+1}1,325%gV38fPgE6uaBaS6!aGf5aIa:9m8Icwcy0sgIavcDaQ8_afe-106}eVeK72f3e#hAc;d,fugL61d#cX7vc6c!b}hFf6e1d06EdEh$8|eIhVeLamc:c=hIa{15a}a dbb4c~dMb@cUb fpdob:bn7vdsh}fedJbffpfre{i1h_bri6fCd:04dwdR1casd!04d$h;9HeFhZcfh)cha;eMfb15hPd.aYhU8+eRe,9(7|dXbhioiqi37$e!h|9Ye=hRgNd?dUhVd_d{d}2Jdxe07?e415e7e9ebed0kefehej0kel2deoeqh501euigb)d5i0eAb.i2iJ7-itiwdGbPf8c/iAf7aHe+hzbZe:j78k15eYfnhKfsanjdiHjjd1jldeb(h,i9e^iRj4eCj62!hRf2jseNjuineTdNa5gOhYjmi8fkjF04fmir7qjC3Dibf45QgW5~fR2#f+5(0;0?0^04.

###(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

.128013s3_8ufvIy n7aêS1me(P2C4:Vtwi][hE*)6o;bcdg/0làqAp.r,}=+Nk{95Rxé050O0s0A0n0C0S0b0k0N0S0n0b0b0#010A0C0W010406050b0f0r0r0n0Y0j040p0K0S0f120K0l0k020n0r0W0L0k0,0s1c0Y0U0f0s0b050Q191b1d1f170W041D1K051N0Q1N1P1K170O0C0h0`0|0~100F0C0P0F0S1%0F0A15050=0M0S0s1Y0}0 011$1(1*1(0A1:1=1.0A0M0K0O1f1/0Y1L0A0F0`1i0b0W0n0l100v011@1!010g0@0s0l1q0s1.2f2h2m1_2p1=2s0r2u040a0k0u0Y0K0W0K0b0C1l1n0:2d0Y0Y0s0N2P1D2w0l1L0Q2b2#0A29282a0O2y101*0l2r2M1.1V1X0{1^2/0C2;0l251W1.0W2U1L2Z2#36182g1n2`2n2 0Y1c0S150k0q2Y3a16392x3c1_3e3g3i0v3l2h3n2Z2.013s0n3h040k0c3w2!173z3q103C3E0k0x3I3y3a3A3O3i0+3S3K3U3M3B0K3f3D3i0J3Z3o3b1Z3r3(3t3F0m3-3L3:3N3=3*3F0e3_3#3{3%3)3P0*413p433W040q0R483/2{443?0q3k1E3m3!494h4b0q3v4m3x4o4g3d3}3E0q3H4u3J3.3V4z150q3R4D3T4p4y454I3Y4L4w4G4P4c3,4S4F3$4r3^4Y3`4q4H4c404%424)4V0q474-4N3;4V0v4e4?4x4^3?0v4l364T4!4*0v4t524Z4a554C584(4O4 4K5d4.5f3~0v4R5i4@3|4_4X5o4}5q4 4$5t4U4 4,5y544_4=5C5a4V0c4{5G4/3?0c514n595M3~0c575Q5e4~5T5c3m1M341D2^2(0O2,3A0N252E0/1W1L330s355#4L055.0:5_5p010(153q3S5R2n0B3i655X3N0N150G1=0h0s6a5j1_14040y3Z0k6q0k661_62040:0g6j60683F6z5u2o0r150d0d2}2O6I6D3A6m0t6N3$0M6m0b0s0S6y5{6b016m0Z3S6s6!0l155@2 0r6R436$6(6t3N156.6:4h6=4L6)6k6^043q6i6Z706#150I6o4S6r7c6 606T156V6X6{2n0K150X7k3r6,2U6`6~6@017m040#6?6*7r2=6/7b7d6q7v7g047i6Y386!7x7o75606+047t367e6E7x7z7u7B7U0K7E527G7H6!7J7L7p107P7:3B633:747W7v7Z7A767T736p7+7I6U6W7M5#7O7n7?7T0r0K0j2r2;1C7#767}8j606m0)0!3Z067c7v6v6x7?6B6s7R6E0l0g158d1V2p0s0d8d8f0l2;7?6P7?7.868O156%8m8B8E0n120s2U8T048V7{7$8K8g7`88766m79827G847h8S8A3A7=8{4!8E8e8-8i7N8:150E8b8Y8!8$8~6;150D7~608l8*7 908L8N4S8s6r8u158w9c4h8y8b8D048,8M8I0:8%6Q9u2n8R7j9G6l8U9g8X9z8Z0C8#8.3x7v8;7a7*836!6v0C873x7X3V999R9b9j9h6B2}9N3A9I9%2!7|8a9K719A8h8%9X4n7+7d9r042U0A0f0Y0l9=6S859J949h9{ag9O9~1B8%979|7@9P9a9T9_6!6m9f9o8t9!9s0s9^5 6E9wap8C9l8-0d2N1r1=9E8QaeaD9V78a14va3a59$ac4a0M152BaPap9@7?8}aj9*9z919B938/8n78a!4h7x020P0A0La`2n0r0C155Ka@6E6maV3Ja3az9k040A0K0=0Sb11_9i3m9)3$b3b58?bca50g3(bk9}8ebx7w9:ab8W9?aRa,aib7a/ala?9U89047Qa.8 040h3D1AbMau95040t8=7Fbca47$bgbibA7x0$7!9.akbzb%btaAa60;a9bDb;a/b+3Db-150QbA0la$04a(ap8Pa*bGapa-bJbSbL8%0I8rbd608vaC8x69aH9yal0d2L0l0:2UataE6O159FbR43a+ca9MbEbS5.aC0gbXcB3$9Wbscm6E9#aDboa#a%2ra)cF4hcHc%7lbIbNbecicI04ckcK43a|a~b0c?4hbq04b6c-a^6ncT9Zbec0bjc{c+7ybAc}c bbb(cY4q15d60dcM0gcOc2dad81_dcd38@b_bv0Yc59+9Sb-bCbAc)cgc@c,bY7SaJa=a0dtb^76cWdyar9,cAdg7l6B2 0AdB159;dq71dldnc:ba16dfdOcn150Y0?6Vc52E0zbV0s0G2Tbwc:cEdF4h0b2k04010i0S0k1c0l1z1?0n0fea0K2}0_0f3b0KcN0C0N9R0l1-cjdNaXb*bhc1d%7w15b/dDcdc*bldHcQ4adK9 c:aoeG9}9QdAc:axb~3$7x0HdRd)cPaT04eOe23ddz9-e)9L04eUa2d.9qexbidkendmcPdVeH04eDeA80e`d*eP77e%98dSeSf5aweve?dPd;b{aadRd6doc4f1diey0Se_cNcP9pduff046Wd@d+fd7,fwa7b|bA0(6d040%1mcA170Q5}5^5$fQ0Q5)1D0A5+fV2*2$24262(0n1;fS5)1JeJ4h2U0r0d0g0n0(8I0F0c151v1xed0_d,1M3n1K0w7(2D0k2}1V1z0.0k0O2h0_0S000s0-8#eq0N1?330.0N0.0:es0Z0k1=6sfP3A1{1)1+1-f-2n6vfycAe$d,e}106vfEfieAfH15fK9n38fO5/3F0W0s1k0k0o2)1?7(0C0b7Q1T1O040Vej0Cgv1?gygogqgs0A0k1Bg}0.1z1W3D2rg}0T0k7ag.2^gz1+1}1,325%gV38fPgE6uaBaS6!aGf5aIa:9m8Icwcy0sgIavcDaQ8_afe-106}eVeK72f3e#hAc;d,fugL61d#cX7vc6c!b}hFf6e1d06EdEh$8|eIhVeLamc:c=hIa{15a}a dbb4c~dMb@cUb fpdob:bn7vdsh}fedJbffpfre{i1h_bri6fCd:04dwdR1casd!04d$h;9HeFhZcfh)cha;eMfb15hPd.aYhU8+eRe,9(7|dXbhioiqi37$e!h|9Ye=hRgNd?dUhVd_d{d}2Jdxe07?e415e7e9ebed0kefehej0kel2deoeqh501euigb)d5i0eAb.i2iJ7-itiwdGbPf8c/iAf7aHe+hzbZe:j78k15eYfnhKfsanjdiHjjd1jldeb(h,i9e^iRj4eCj62!hRf2jseNjuineTdNa5gOhYjmi8fkjF04fmir7qjC3Dibf45QgW5~fR2#f+5(0;0?0^04.