Les durées - Addition de deux durées

Série d'exercices

Cet exercice fait partie d'une série :

Les durées peuvent être exprimées en secondes, en minutes-secondes, ou en heures-minutes-secondes.

Ainsi, une durée de 23 652 secondes peut aussi être exprimée par :

Différents formats
secondes = 23652
minutes_secondes = (394, 12)
heures_minutes_secondes = (6, 34, 12)

On souhaite créer une fonction permettant d'additionner deux durées, exprimée en heures, minutes et secondes.

Les deux questions sont indépendantes.

1. Fonction additionner_durees

Écrire la fonction additionner_durees qui prend en paramètre deux durées exprimées en heures, minutes et secondes et renvoie leur somme exprimée en heures, minutes et secondes.

Exemple
>>> additionner_durees((1, 12, 30), (2, 5, 4))
(3, 17, 34)
Fonctions fournies

Les deux fonctions suivantes sont chargées en mémoire :

  • la fonction convertir_en_h_min_sec qui prend en paramètre une durée exprimée en secondes et qui renvoie la durée exprimée en heures, minutes et secondes,
Exemple
>>> convertir_en_h_min_sec(23652)
(6, 34, 12)
>>> convertir_en_h_min_sec(0)
(0, 0, 0)
  • la fonction convertir_en_secondes qui prend en paramètre duree (un tuple de trois entiers représentant la durée en heures-minutes-secondes) et renvoie le nombre total de secondes.
Exemple
>>> duree_a_convertir = (1, 25, 50)
>>> convertir_en_secondes(duree_a_convertir)
5150
>>> convertir_en_secondes((6, 34, 12))
23652

###(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 napSr1me,(P2=+:twkih)050h0x0F0r0I0n0b0p0g0n0r0b0b0C010F0I0s010406050b0i0w0w0r0u0o040t0d0n0i0#0d0q050m0,0.0:0=0*0s040~1505180m181a150*0h0I0k0T0V0X0Z0J0I0l0J0n1o0J0F0(050O0f0n0x1j0W0Y011n1p1r1p0F1x1z1v0F0f0d0h0=1w0u160F0J0T0^0b0s0r0q0Z0B011B1l010j0Q0x0q0r0w0x1v1Z1#1*1D1-1z1:1=0(0a0p0A0u0d0s0d0b0I0{0q0p0M1X0u0u0x0g2a0~1^0q160m1V2n0F1T1S1U0h1`0Z1r0q1/271v1g1i0U1C2x0I2z0q1P1h1v0s2g162l2n2R0+1!2b2F1+2K0u0/0n0(0v2k2V0)2U1_2X1D2Z2#0(0B2)1#2+2l2w012:0r2$040c2@2m172P0~2D2q0h2u2{0g1P1?163719352T0 2*053c0M2Q2V2{0H0(0M0j323p2-1k1D0G0(0p3w2,2W3z0Z0q0j0(0r0h1g2a2z0u0e0h0i2g0x0b3E2`2.0Z0%040z3Y3q3!2|3t3U0x0x0e2(3k2^3F2{3$0y3w3D3Z3H3,043T3V0e2?3?333~2G013$0K0E3w060p4g3}3*3 0q0(0b0d0.3:0b2h0|0M3X46044i3y490d0(0C3|3^3+4l043c0q0k0x0u0#3R1/0e4r4J4u3)4z1+3$3(4w4F4k3-433=2T484X0(0K4E4+1D4B040D4/4j494H4J4L4N0I4P0q4R4s0q4U4!4:3#0(4Z4*4_2Y4%3/444V3G494b3|0p4f4h4#493s042g0F3U0}4w4y5i5d4I0|4}4O0e4Q0J0e0w2I520g5h3_595N4G4m4o1=5L4t3W5Q3 5k4w0*0m3n0x2n2O5)361h382q2s2o1O1Q2q0r1y5,0m375$0M0O0Q0b04.
2. Test de la fontion

Compléter la fonction test_additionner_durees avec au moins trois autres tests afin de pouvoir correctement tester la fonction additionner_durees.

Test

La fonction de tests sera appliquée sur une fonction valide, mais aussi sur des fonctions invalides.

###(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/0ly n7apSr1me,(P2=4:twki95h)é050h0z0H0t0K0o0b0q0g0o0t0b0b0E010H0K0u010406050b0i0y0y0t0w0p040v0d0o0i0*0d0r050m0;0?0^0`0/0u04131a051d0m1d1f1a0/0h0K0k0Y0!0$0(0N0K0l0N0o1t0N0H0-050T0f0o0z1o0#0%011s1u1w1u0H1C1E1A0H0f0d0h0`1B0w1b0H0N0Y0}0b0u0t0r0(0D011G1q010j0V0z0r0t0y0z1A1(1*1/1I1=1E1^1`0-0a0q0C0w0d0u0d0b0K100r0q0R1$0w0w0z0g2f131}0r1b0m1!2s0H1Y1X1Z0h1 0(1w0r1@2c1A1l1n0Z1H2C0K2E0r1U1m1A0u2l1b2q2s2W0:1)2g2K1:2P0w0@0o0-0x2p2!0.2Z1~2$1I2(2*0-0D2.1*2:2q2B012^0t2+040c2|2r0/2 2?0(32340F372~2!303d0-0M3g1c2U132I2v0h2z300g1U1{1b3r1e3p2Y142/053w0R2V3i3b010J0-0R0j3n3a1p1I0I0-0q3R3K3T3c0j0-0H0z0b0H0e0t0h1l2f2E0w0e0h0i2l3)3Y2=3!010,040B0O0G3g060q463X3S2L3M0-1H0z0w0H3g483Z4a0r4c3.2e0K113;3?3^0z3`3E2}2;2#3}3 0B0B3{4z4a0y0K2,4E303 0A4h4y304H2,2{4w2r4P3L4M4O491:4R350n4K4X0-0O4N4U044i3|4a4B4)3}4$4T2Y4!1I4Y4.4:4F4#4I043m4.4W4A0-4-2W504Q533f564|0(3 0O0O4Z4j1:0d0-0E0E5m4;1:4?5g5n1I4$365x5u4}595t515z530x0s4@4=5F4 574G530c5f4{5y5i4+5a3F5h010b1-040)3)0H0q0n0q0P0g0N0d0i0P0144475c3L3N044d4f5G3j4m3/4p0r4r3@3_0b5M5v0-4C6c5I4J5C5H5X045Z2}5|4^534(6j4L5O5b5Q520-0c6s5V5D6l4,624*406g0(4_6J3~6v2/6p5R0-6B5!5W6N6m6G6q6z6T4x5#5j5l5P5#5p045r6Y5N6I6t3L5A6M4~6w5#4$2-6=586X6*6V4$6#4V6%5Y6M5%0-5*3*0q0x5/5;5?5^5`476x1I5~604g716D31644o4q4e4s6a6^6e4D6~6R046}6C6k6W6n2r6Q6y040D4`6U7r6_6P7l6K5S743J7R777q7H5w7G5d2`7z706`725e7X7U7I6/7M5U7Q7$4+6)7-7r6,6.7#6u6;7(6?5e7+7J4/7;6L7C6d7,7T6{5S7^6$6V5j887;795)3(7c0D7f5=5@5_4.457k5#7n0$4e7p7}7H4l5 4n3:7w694u6b8c5E407B846Z7E877?6h540L8W81856!7+6F8$6 8S7_7)7N8#8F8/7:768e6o8a7W8)7|8f6V7 5s8+6:8-8j7r4$8i758k6O8`8g6S8;8 976r8)8m5#8o7b5,0c8t7h8w2W0/0m3H0z2s2T9y3q1m3s2v2x2t1T1V2v0t1D9B0m3r9v0R0T0V0b04.