moyen
Les durées en POO (1)
On s'intéresse dans cet exercice à une classe Duree
permettant de manipuler une durée exprimée en heures, minutes et secondes.
Un objet de type Duree
est instancié en indiquant les heures, les minutes et les secondes nécessaires
🐍 Console Python >>> duree_1 = Duree ( 2 , 45 , 52 )
>>> duree_1 . heures
2
>>> duree_1 . minutes
45
>>> duree_1 . secondes
52
Les secondes et les minutes d'une durée doivent être strictement inférieures à 60
. Lors de l'instanciation les valeurs passées en paramètres doivent respecter cette règle.
La méthode en_secondes()
renvoie la durée correspondante exprimée en secondes. Cette méthode calcule et renvoie la durée exprimée en secondes mais ne modifie pas les valeurs des attributs heures
, minutes
et secondes
.
Les méthodes ajoute_minutes
et ajoute_secondes
permettent d'ajouter respectivement un nombre de minutes ou de secondes positif ou nul passé en paramètre. Si, après l'addition, les minutes (ou les secondes) de l'objet dépassent 59
, on doit les convertir en heures (ou en minutes).
Exemples
>>> duree_0 = Duree ( 0 , 0 , 0 )
>>> duree_0 . en_secondes ()
0
>>> duree_0 . ajoute_minutes ( 12 )
>>> duree_0 . en_secondes ()
720
>>> duree_0 . ajoute_secondes ( 3600 )
>>> duree_0 . en_secondes ()
4320
>>> duree_1 = Duree ( 2 , 45 , 52 )
>>> duree_1 . en_secondes ()
9952
>>> duree_1 . ajoute_secondes ( 20 )
>>> duree_1 . en_secondes ()
9972
>>> duree_1 . ajoute_minutes ( 30 )
>>> duree_1 . en_secondes ()
11772
Astuce
La méthode ajoute_secondes
pourra utiliser la méthode ajoute_minutes
__repr__
?
La méthode __repr__()
est une méthode native qui est appelée lorsque l'on souhaite afficher une représentation de l'objet (dans la console le plus souvent). Dans le cas présent, cette méthode est aussi appelée lorsque l'on souhaite convertir un objet de ype Duree
en une chaine de caractères (par exemple, lors de l'appel de la fonction print
). Cette méthode renvoie une chaine de caractères sous la forme "hh:mm:ss". Par exemple, pour un objet initialisé avec les valeurs 3 h, 20 min et 2 s, la méthode renvoie '3:20:2'
Compléter le code ci-dessous.
.128013_m1eC0kfp;/8rbéoRw=+ vhd9t{3nèc.%s7ja}PSgA5(Ou)l*x4q,D26y:i050y0e0A0L0+0W0I0v0F0W0L0I0I0t010A0+0j010406050I0U0c0c0L0n0)040O0q0W0U0 0q0D0v020L0c0j0k0v0r0e190n0!0U0e0I050l16181a1c140j04051H1A1K0l1H140y0+0w0@0_0{0}0x0+0P0x0W1Y0x0A12050/0o0W0e1T0`0|011X1Z1#1Z0A1+1-1)0A0n1I0A0x0@1f0I0j0L0D0}0%011/1V010i0;0e0D1n0e1)25272c1;2f1-2i0c2k040a0v0N0n0q0j0q0I0+1i1k0-230n0n0e0F2F1A2m0D1I0l212R1~201 1*0y2o0}1#0D2h2C1)1Q1S0^1:2#0+2%0D0q2+1)0j2K1I2P2R2|15261k2-2d2=0n190W120v0d2O30132 2n321;3436380%3b273d2P2!013i0L37040v0C3m2Q143p3g0}3s3u0v0Z3y3o303q3E380R3I3A3K3C3r0q353t380(3P3e311U3h3U3j3v0J3Z3B3$3D3(3W3v0m3,3R3.3T3V3F0z3@3f3_3M040d0g3~3#2.3`3)0d3a1B3c3Q3 47410d3l4c3n4e46333:3u0d3x4k3z3!3L4p120d3H4t3J4f4o3{4y3O4B4m4w4F423Y4I4v3S4h3+4O3-4g4x423?4T3^4V4L0d3}4Z4D3%4L0%444B1L2`1A2+2U0y202Z3S0F2?2u0,1R1I2_0e2{3c3I054|0-544*0}0h123g564U2d0s385g4!330F120$0U2K0e5l5b0111040*3P0v5B0v4P3_5d040-0i5u4n1;5j3v5K3q0i0c120b0b2:2E5U5P3S5x0S5Z3_0o5x0I0e0W5J4/5h1;5x0#3I5D5:3D120x5%475=5@5E4g120c5}2d5 4B5^5m3h121z5/6a0}5x0V5z4I5C6l695v5G1:0e0n0A605_010c0+124.2|6n5L0}0q12020W0A0k0t6u6f3r636M5v6F046H6J6Q6D6w6y040(6A3c6C3q0q5N270y6W3q6x6z6.3S6S6U6K6=406c6`476@6I0k6}2d6:6!6$4l6m5C612d5)6c5,5.2~6v6S0G656b040x0e5r1y721;6S6L687a7l5|6k786(3S7c045+5-7k6E127j6e5v0D632:1h7q7v7h127u6B7w5`04647z787X017D7F7f557T047K7g6N7N7E2L1j0-6d7W7-7V6%7%7=7`4d066l7%5G5I7H015N5D7L6X0D0i122h0b5+4|0D7_885#887)7e8n126i5A7A85122K0A5r0D7r0}8q7G8c6)7J887=7n7p813n7B3_6S0X8D6Y120C6#762Q8Q6~120u8U8F7+3n7%7i8K7O0D7Q8O8!8-128T7S6N746#8U6S8(8{5v8*888.8H4Q7d8k8m4I83796v860e8+2Q7%8a8K8f040L0K0q7Q0b6x8;0A7R7:5v8o975(5*8r9B5~125?928d8:8?5a6X6h6j2|9d7$6v949F2d969y9K7m7o2K9M8#9X8%7}8P7%9A9Z3q9V9:6?8J9W7l9u8=8 8%8U7=9u9M9.8t9}040l0l8U8}8Z137A9)1;9=7,6N9Yah7M8:9|9J8I049,8@6v9/ak6Xag8,7-7/av3Lam9w9(8^04917{7;9L8s040Va50Ha96Z8~9c849f12879_0}9laZ3r9n9p9r9w8i7@8l9xaB5!125$a$ax9jat9H9 99a2a`aN9Q4dad7%a^9NapaAayaK9o9q9s9{aEaM0Sa?9?9C7d8Gbj8$7.8/7?9aa/9-7-aI7~6v802La~6N6ha5a7aR12aTbn66a47#6mb49Dbma:8R9^bJ7l8j7^btasai7U8Uaub993bP9ib69@bpa$bzbsaFbva|brbB9zbLaJ6R12aQao3Saa3P9Sae5caX9h88a#bU0}5R5T0b2K2_5Ya$b%a_6Nb5a3b08v9T6N5G8z8B8U0I0L12b+7%0I2a6T1w0q6Va$2D120B8pb*95bTbR629#8N88cJ040McUcDb1b(6XcVcLa@cNa$ajc#aC7Z7PbfcI6ZcXcIcZcU6Zc(cb7(c*c}c,clalbrbXb_c$c?cY6GcFcH9R1A58534:dg0l4?1A0A4^dl2X2S0L1,di4?1Gb,3_2K0c0b0i0L0h0e0b0x0C121s1u1w1y0vc!9j1N3d1H0T1k1y0A0v0+0F0+0v0q1,1Y0p0v2H2K0D5+1Y2%0n0v0I0)0I0A0p190 dL2t0DdW1-0?1~0q0+0?260n1n0E1~dM0W3U0?2H0W002:d^27dZ0L2Fd*1.0_2o0e7K1O1J1dd!1j0v0w7odW0F0n0p6r0v0U2%d*5reGeI0D0+d}2hdW2h0vbe1y1Ba-7_d#0U0veU8M2K0#dX0W0vdB1h0v0L0we4d;eJ0v2=0c0o2Kep0ve7e9eb0?0w1a0+dr1-0G0vdTf0eC0v1-e.0:e~eU1h0;e527dW0Cf01af29%e%eT1k2f0YfoeO1.15e30D0P04f51-5rfrd;0y0pe/6t1BfEfGeu3d2+3q1?1!1$1(dw472q2h2j122w0OeE10dW0N0)211j56529N2}55dff$2d5G5fa$cacQ5n5p7p5tcj12dOac9ecsc7cA6vg3c-3Scd045U5W0Acic}ckf~afc g45;a{b/5{a5ar5O6v74abco9Ib|9!7!gJapgCc58V04gGa gIbxbab=b!aqbGgRaM8ubMaVcmgvgjbSb.c}8L9$bYgDgYgO7 gAg(gdb)blgggYb8d2gKc:g=gP7tb@gLb28w9Ug+h2b7bqbWa.gXb}gZc06{7E3Z0lf}dh2Rduew0Qej0+e+ez0jfe2h162E1.eEeGe^eKej0/0D0F1.e=2L0ve3e5e;0n0P17eS0?6jevfW3SfY1^1%2l6Nf(2s2u2w0f1j0I1f1.f;f?8C4/f_3!f{8,hr6v0P5x020P6Ji6i8i71qbq6-hmbog^byg65sbg88744bgrgygMc16Z0%4Hip04gUbu8|6Z0RgSbCb{4d7%i46Gibi90kiL8bg/aX453q0P6S0d220*0viu0cdN0viC9M14hq4}2Rh~dj50dv9re;eB0Fd=7o1-d~dW0-0U0YhVhXi{h!1LfV1RfX1$h*f#7%h.f*2v0vh=d-h^2xf=0xf@h}4;2~4/i26NiI6TiKjv6JiOgw7Yieirg-ihba5qikg904bijzgQ4jiwiybZ5v744-g$iR3SjtiLjYibjyg,cRjBiGi36@030C0z0k0%iWiY0gj;0g0I02j,j.hphr1N4;i.0wdR040$270?hO0@0`e+fgf10ceae~57i+6df}f0d,2ZerfI9$fLd*fO0Le:kh2Hh(j8f!h,jR6ZgGi*59fUdvfchBe:2h2f1k2_0pdZ5+d;e1fLftdMdLff00ezd,d.0PeKh#j52,3_h)kAgtcc2gh/f+jfh?jih`jlh|2~h~jp2~jr5vjXjwiMj!idgBb@jG0eg8iwjKj$336Pif9*hljC47740ZiDb`aNjV3_l4ialwicgz5Hlt47iT6Gj{0k0g0v0xiXlpi!iXj^j`j-714OkFdii-hu1Hk5d-0@1.0-0nePeH0FkaffdMkdkfdMkw537ykk0.5Df}kji+kl2h2;e00LeA3tkqe7ksfPl_4}j71@k/7%gF56lTb.evdj0.0:0=04.
Partie 2
Pour la manipulation avancée des durées, on peut faire cet exercice .
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)