La course cycliste (I)

Une course cycliste se dispute.

Vélocourse.jpg
Par ludovic from Guissény. (Bretagne, Finistère), France — Tro Bro Leon 2009, CC BY-SA 2.0, Lien

Chaque participant est identifié par son prénom : "Nadia", "Franck". On garantit que tous les prénoms sont différents.

Durant la course, les cyclistes se doublent les uns les autres, le classement évolue. À chaque instant, les positions des coureurs dans le classement sont stockées de façon ordonnée dans un tableau : le premier du classement se trouve à la première position du tableau, le deuxième à la deuxième position, etc.

Par exemple avec classement = ["Nadia", "Franck", "Thomas", "Elizabeth", "Laure"], Nadia est la première du classement et Laure la dernière.

On demande d'écrire plusieurs fonctions autour cette situation.

assert ?

Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.

Ainsi, l'instruction assert 3 + 5*7 == 38 permet de vérifier que l'expression 3 + 5*7 est bien évaluée à 38.

Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.

La vidéo ne s'affiche pas... ?

Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.

Fonction nombre_coureurs

La fonction nombre_coureurs prend en paramètre le tableau classement et renvoie le nombre de participants à la course.

🐍 Console Python
>>> classement = ["Nadia", "Franck", "Thomas", "Elizabeth", "Laure"]
>>> nombre_coureurs(classement)
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

.128013bSu_l(wn/)paPk:hors1vc2mgydi fte=050B0G0F0m0C0f0t0D0w0f0m0t0t0H010F0C0l010406050t0d0y0y0m0s0A040c0r0f0d0Y0r0i050j0)0+0-0/0%0l040{1205150j1517120%0B0C0v0Q0S0U0W0q0C0z0q0f1l0q0F0#050L0b0f0G1g0T0V011k1m1o1m0F1u1w1s0F0b0r0B0/1t0s130F0q0Q0=0t0l0m0i0W0x011y1i010E0N0G0i0m0y0G1s1W1Y1%1A1*1w1-1/0#0a0D0n0s0r0l0r0t0C0^0i0D0J1U0s0s0G0w270{1=0i130j1S2k0F1Q1P1R0B1@0W1o0i1,241s1d1f0R1z2u0C2w0i1M1e1s0l2d132i2k2O0(1X282C1(2H0s0,0f0#0u2h2S0$2R1?2U1A2W2Y0#0x2$1Y2k2L0G2k2A2n0B2r2t010w1M1:132`162M2)2j2;38300J2N2S2~0o0#0J0E393d2*1h1A0h0#0D3k372~0i0E0#2H0y0b2d0e300d2d3E0t3s2i2~0!040g3I3e2+0W0i0#2+0G1/0i0F3O3m2D013L0k0p3k060D3,3r3J3Q013g042d0F3E0`0|2%3.3P3n3R0b0#1`3Z2T3 3$0#3N3{2=3t3:3S043U3W3Y4a383/463%3*0{3b2^14360j342l2|0{2o2n1L1N2n0m1v4r4u1e2(4u0K0M0O04.
Fonction premier

La fonction premier prend en paramètre le tableau classement et renvoie le nom du coureur en première position.

🐍 Console Python
>>> classement = ["Nadia", "Franck", "Thomas", "Elizabeth", "Laure"]
>>> premier(classement)
'Nadia'

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

.128013bSu[l(wn/)paPk0:hors1vc2mgyd]i fte=050C0I0H0m0E0f0u0F0x0f0m0u0u0J010H0E0l010406050u0d0z0z0m0t0B040c0s0f0d0!0s0i050j0+0-0/0;0)0l040}1405170j1719140)0C0E0w0S0U0W0Y0r0E0A0r0f1n0r0H0%050N0b0f0I1i0V0X011m1o1q1o0H1w1y1u0H0b0s0C0;1v0t150H0r0S0@0u0l0m0i0Y0y011A1k010G0P0I0i0m0z0I1u1Y1!1)1C1,1y1/1;0%0a0F0n0t0s0l0s0u0E0`0i0F0L1W0t0t0I0x290}1@0i150j1U2m0H1S1R1T0C1_0Y1q0i1.261u1f1h0T1B2w0E2y0i1O1g1u0l2f152k2m2Q0*1Z2a2E1*2J0t0.0f0%0v2j2U0(2T1^2W1C2Y2!0%0y2(1!2m2N0I2m2C2p0C2t2v010x1O1=152|182O2+2l2?3a320L2P2U300o0%0L0G3b3f2,1j1C0h0%0F3m39300i0G0%2_0z0E0I0t3u2k300$040g3F3g2-0Y0i0%2-0I1;0i0H3L3o2F013I0k0q3m060F3)3t3G3N013i042f0H0d0t0|0~2)3+3M3p3O3Q3p3S1.3V3_2@3v3-3I0e3W2V3}013B0%0p4a3H0%0D3%0}3d2`16380j362n2~0}2q2p1N1P2p0m1x4o4r1g2*4r0M0O0Q04.
Fonction dernier

La fonction dernier prend en paramètre le tableau classement et renvoie le nom du coureur en dernière position.

🐍 Console Python
>>> classement = ["Nadia", "Franck", "Thomas", "Elizabeth", "Laure"]
>>> dernier(classement)
'Laure'

###(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[3è.4ên/R)pL0EFhDvc25AgNf=buS-T,_l(wOaPkzé;:ors1qmyd]i te050!0)0(0M0$0I0V0%0t0I0M0V0V0A010(0$0l010406050V0C0Y0Y0M0U0Z040D0T0I0C0}0T0h0%020M0Y0l0R0%0j0)170U0X0C0)0V050i1416181a120l041y1F051I0i1I1K1F120!0$0s0=0@0_0{0q0$0x0q0I1Y0q0(10050-0B0I0)1T0^0`011X1Z1#1Z0(1+1-1)0(0B0T0!1a1*0U1G0(0q0=1d0V0l0M0h0{0u011/1V010z0/0)0h1l0)1)2a2c2h1;2k1-2n0Y2p040a0%0N0U0T0l0T0V0$1g1i0+280U0U0)0t2K1y2r0h1G0i262W0(2423250!2t0{1#0h2m2H1)1Q1S0?1:2*0$2,0h201R1)0l2P1G2U2W31132b1i2=2i2`0U170I100W2T3511342s371;393b100u3f2c2W2~0)2W2:2Z0!2%2)010t202z0*1R1G3t303g3q2V053C0+3J3j1U1;0O100+0z3L3Q363S0{0K100%3Y3i3!2?010h0z3V0)0U0h0$3=3*2U3A0 040J3`353A0h103k1r2m0(403R3-3}0k0S3Y060%4h3)3{3k0{3U042P0(0C3?3Y4j414l3.443S460h481z3K4k3#013}0b493,380B102w4K3|103 4D3r3+424y1:4A4C334F4b100k4t4W4w0T100E4+4%2i0Y0$3d4Q4w3}0#4f1y3O3u1H2 1y3w1y0(3y562#2X1 212Z0M1,510i3w1E3Z3A2P0Y0H0z0M0O0)0H0q0c101q1s1u1w0%4e4U3M1L3h1F0L1i2G0C0s0.0(0%0Q0x0M1-2y4B0%2F0(3=0%5L0U0%0@0%0V1d1f0$1h5*0C1R2c5Z5C1H3h2:3A1?1!1$1(5l4w2v2m2o102B0D0t0U0~5P0N0Z261h3*3I3+323K50614G4n3W4`4G3%043)5E6n3-3/3;3?3^0U6r4(3~6E384Y0_4!6H1;4c5D314g4i4,4G43040-0/1-4;4v4G4.040A6!4a6I042`0Y0B2P0H3C4r0)4r1x6w6T6F4T4$6#6y6J0V6L6{4=6N4)4t4u6+1;0t0W10030%2P0h0s0T3^5(2m0J455V0(4*6w6R4h6|2i4n4p4r0h6*4L3l72746 7b0{4I6M0{6V6X0I6Z6w7a7E0{6%4:7S7x1;4@4_75702i4|4~0i6m525h5j1J040r2c0;0t1.0t0^0G2C6e0q5/0M1f0T6a730%0C1i0U0M0t6?0U0t0$0e0%0w0C5(3^8k0!002^1Q5A5%0I8p0h1Q7_3)505|1$1^1%2q7(7F6W0.7Q0)7D3A7W7M017#043e6{7,3D047}5/0l6^5P2I1m5U470%2`5Z5%3N3D8B1@5 8F7J018O7%8^8R8T338V3P0e060m0M0%0z1h2R5.2L0)0s3^5W5T840;5D1O3F2;4G5}8D607Z0{632x2z67696b7~6f7C6{6i8 337-764m3;3X8{7U016t6v7I9M6z040+6B3_9L4R6G9X4w6V7q478P6O4f4i7T3A7z0,7B8M9#7G7r9)104J9!6$4/8P8}9_044}7u4 8W7.3v3G5k7?0h0;1-0%0Y0g2y0%1w2~2J7}8u0M5N4B0E9U3@5!0Q0I0Q7r0%8o880%1{0)820%955$0%8q0$8y051r6-5R0M0}9KaP8z8:4w9o8?6x2i8`9Q3A8R3p8U6man005?0Q0l0Q0h0C0I0}0dai8/2MaY8Ca!9r8_9~9|3-8R0c3*903u7}aO0Y040,0t1yaP0e5_1P1R8;5~1_8@9M9t652A0%686a0l6c7 6g9C539E6la69H3B7e047gaL7_0;2G0V8h9,0%0n0%0EbXbY020x0(1o0WbWbYbXb!b$0%0ub)b*bZb#1o0cb:b+b?0%0f4~bI9$4z9^7YbI6%6)c38G7K9`8P0V2f04010y0M1Q0M01a10G9=4Gcc10010p8a0h0t3Uclcn3-cpce0F80170Vckb57)10cmc78^cA010o1#0P5f0,0qcGa(4{cJcy2icN946@cV4Ec84H10a36Qb27d7faK8waM5B0h5RbS4i0E0v1ja_0Rb;bW0fc b$d20Eb^02d0b;bYbWb/dad6dd0E8~3g12ba3s535ia9540,8J0V04.
Fonction coureur_en_position

La fonction coureur_en_position prend en paramètre le tableau classement et un entier position et renvoie le nom du coureur à cette position.

On garantit que la position passée en argument à cette fonction est valide (comprise entre 1 et le nombre de coureurs participants).

🐍 Console Python
>>> classement = ["Nadia", "Franck", "Thomas", "Elizabeth", "Laure"]
>>> coureur_en_position(classement, 1)
'Nadia'
>>> coureur_en_position(classement, 3)
'Thomas'

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

.128013bSu-[,_l(wn/)paPk:hors1vc2mgyd]i fte=050E0K0J0p0G0i0w0H0z0i0p0w0w0L010J0G0o010406050w0d0B0B0p0v0D040c0u0i0d0$0u0l050m0-0/0;0?0+0o040 1605190m191b160+0E0G0y0U0W0Y0!0t0G0C0t0i1p0t0J0)050P0b0i0K1k0X0Z011o1q1s1q0J1y1A1w0J0b0u0E0?1x0v170J0t0U0_0w0o0p0l0!0A011C1m010I0R0K0l0p0B0K1w1!1$1+1E1.1A1;1?0)0a0H0q0v0u0o0u0w0G0|0l0H0N1Y0v0v0K0z2b0 1_0l170m1W2o0J1U1T1V0E1{0!1s0l1:281w1h1j0V1D2y0G2A0l1Q1i1w0o2h172m2o2S0,1#2c2G1,2L0v0:0i0)0x2l2W0*2V1`2Y1E2!2$0)0A2*1$2o2P0K2o2E2r0E2v2x010z1Q1@172~1a2Q2-2n2^3c340N2R2W320r0)0N0I3d3h2.1l1E0k0)0H3o3b320l0I0)340d2h3D0h1:0h27292k102+3x2/0!0(040j3w2m3y3B3r0K1?0l0J3U3i3P013R0g3o3v3V3)0l0)3J2a0G0}3%3q2H3*0)0n0s3o060H433.3(3r0!3k042h0J3D0~3M2_453{2Z3X1D3Z1:3$4f3c3/473}040f3`2X4s3;043?3L2S4h4x3|0u0)0e3-3O4s0B0G2(4w323R0F410 3f2|183a0m382p300 2s2r1P1R2r0p1z4X4!1i2,4!0O0Q0S04.