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

.128013:pv(ui2edms=1 ow_lSnatf)hcrgyPkb/050j0i0w0v0g0s0l0o0A0s0v0l0l0m010w0g0c010406050l0f0k0k0v0B0D040t0p0s0f0Y0p0u050H0)0+0-0/0%0c040{1205150H1517120%0j0g0d0Q0S0U0W0z0g0C0z0s1l0z0w0#050L0G0s0i1g0T0V011k1m1o1m0w1u1w1s0w0G0p0j0/1t0B130w0z0Q0=0l0c0v0u0W0h011y1i010x0N0i0u0v0k0i1s1W1Y1%1A1*1w1-1/0#0a0o0E0B0p0c0p0l0g0^0u0o0J1U0B0B0i0A270{1=0u130H1S2k0w1Q1P1R0j1@0W1o0u1,241s1d1f0R1z2u0g2w0u1M1e1s0c2d132i2k2O0(1X282C1(2H0B0,0s0#0n2h2S0$2R1?2U1A2W2Y0#0h2$1Y2k2L0i2k2A2n0j2r2t010A1M1:132`162M2)2j2;38300J2N2S2~0F0#0J0x393d2*1h1A0q0#0o3k372~0u0x0#2H0k0G2d0r300f2d3E0l3s2i2~0!040e3I3e2+0W0u0#2+0i1/0u0w3O3m2D013L0y0b3k060o3,3r3J3Q013g042d0w3E0`0|2%3.3P3n3R0G0#1`3Z2T3 3$0#3N3{2=3t3:3S043U3W3Y4a383/463%3*0{3b2^14360H342l2|0{2o2n1L1N2n0v1v4r4u1e2(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

.128013:pv(u0i2edms= 1owlSnatf)h]crg[yPkb/050k0j0w0v0h0s0m0o0B0s0v0m0m0n010w0h0c010406050m0f0l0l0v0C0F040t0q0s0f0!0q0u050J0+0-0/0;0)0c040}1405170J1719140)0k0h0d0S0U0W0Y0z0h0D0z0s1n0z0w0%050N0I0s0j1i0V0X011m1o1q1o0w1w1y1u0w0I0q0k0;1v0C150w0z0S0@0m0c0v0u0Y0i011A1k010x0P0j0u0v0l0j1u1Y1!1)1C1,1y1/1;0%0a0o0G0C0q0c0q0m0h0`0u0o0L1W0C0C0j0B290}1@0u150J1U2m0w1S1R1T0k1_0Y1q0u1.261u1f1h0T1B2w0h2y0u1O1g1u0c2f152k2m2Q0*1Z2a2E1*2J0C0.0s0%0p2j2U0(2T1^2W1C2Y2!0%0i2(1!2m2N0j2m2C2p0k2t2v010B1O1=152|182O2+2l2?3a320L2P2U300H0%0L0x3b3f2,1j1C0r0%0o3m39300u0x0%2_0l0h0j0C3u2k300$040e3F3g2-0Y0u0%2-0j1;0u0w3L3o2F013I0y0b3m060o3)3t3G3N013i042f0w0f0C0|0~2)3+3M3p3O3Q3p3S1.3V3_2@3v3-3I0E3W2V3}013B0%0g4a3H0%0A3%0}3d2`16380J362n2~0}2q2p1N1P2p0v1x4o4r1g2*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:Lp(40zed3;N 1Eo5_Aên)h],qc[yFuvi2Dms=wlSatf-ORrg.TéPkbè/050j0i0R0Q0H0O0L0n0B0O0Q0L0L0M010R0H0d010406050L0F0K0K0Q0W0D040P0q0O0F0}0q0v0n020Q0K0d0l0n0V0i170W0A0F0i0L050)1416181a120d041y1F051I0)1I1K1F120j0H0G0=0@0_0{0x0H0X0x0O1Y0x0R10050-0%0O0i1T0^0`011X1Z1#1Z0R1+1-1)0R0%0q0j1a1*0W1G0R0x0=1d0L0d0Q0v0{0I011/1V010S0/0i0v1l0i1)2a2c2h1;2k1-2n0K2p040a0n0#0W0q0d0q0L0H1g1i0+280W0W0i0B2K1y2r0v1G0)262W0R2423250j2t0{1#0v2m2H1)1Q1S0?1:2*0H2,0v201R1)0d2P1G2U2W31132b1i2=2i2`0W170O100o2T3511342s371;393b100I3f2c2W2~0i2W2:2Z0j2%2)010B202z0*1R1G3t303g3q2V053C0+3J3j1U1;0$100+0S3L3Q363S0{0N100n3Y3i3!2?010v0S3V0i0W0v0H3=3*2U3A0 040e3`353A0v103k1r2m0R403R3-3}0w0b3Y060n4h3)3{3k0{3U042P0R0F3?3Y4j414l3.443S460v481z3K4k3#013}0C493,380%102w4K3|103 4D3r3+424y1:4A4C334F4b100w4t4W4w0q100T4+4%2i0K0H3d4Q4w3}0y4f1y3O3u1H2 1y3w1y0R3y562#2X1 212Z0Q1,510)3w1E3Z3A2P0K0s0S0Q0$0i0s0x0k101q1s1u1w0n4e4U3M1L3h1F0U1i2G0F0G0.0R0n0!0X0Q1-2y4B0n2F0R3=0n5L0W0n0@0n0L1d1f0H1h5*0F1R2c5Z5C1H3h2:3A1?1!1$1(5l4w2v2m2o102B0P0B0W0~5P0#0D261h3*3I3+323K50614G4n3W4`4G3%043)5E6n3-3/3;3?3^0W6r4(3~6E384Y0_4!6H1;4c5D314g4i4,4G43040-0/1-4;4v4G4.040M6!4a6I042`0K0%2P0s3C4r0i4r1x6w6T6F4T4$6#6y6J0L6L6{4=6N4)4t4u6+1;0B0o10030n2P0v0G0q3^5(2m0e455V0R4*6w6R4h6|2i4n4p4r0v6*4L3l72746 7b0{4I6M0{6V6X0O6Z6w7a7E0{6%4:7S7x1;4@4_75702i4|4~0)6m525h5j1J040J2c0;0B1.0B0^0z2C6e0x5/0Q1f0q6a730n0F1i0W0Q0B6?0W0B0H0Y0n0t0F5(3^8k0j002^1Q5A5%0O8p0v1Q7_3)505|1$1^1%2q7(7F6W0.7Q0i7D3A7W7M017#043e6{7,3D047}5/0d6^5P2I1m5U470n2`5Z5%3N3D8B1@5 8F7J018O7%8^8R8T338V3P0Y060c0Q0n0S1h2R5.2L0i0G3^5W5T840;5D1O3F2;4G5}8D607Z0{632x2z67696b7~6f7C6{6i8 337-764m3;3X8{7U016t6v7I9M6z040+6B3_9L4R6G9X4w6V7q478P6O4f4i7T3A7z0,7B8M9#7G7r9)104J9!6$4/8P8}9_044}7u4 8W7.3v3G5k7?0v0;1-0n0K0u2y0n1w2~2J7}8u0Q5N4B0T9U3@5!0!0O0!7r0n8o880n1{0i820n955$0n8q0H8y051r6-5R0Q0}9KaP8z8:4w9o8?6x2i8`9Q3A8R3p8U6man005?0!0d0!0v0F0O0}0(ai8/2MaY8Ca!9r8_9~9|3-8R0k3*903u7}aO0K040,0B1yaP0Y5_1P1R8;5~1_8@9M9t652A0n686a0d6c7 6g9C539E6la69H3B7e047gaL7_0;2G0L8h9,0n0g0n0TbXbY020X0R1o0obWbYbXb!b$0n0Ib)b*bZb#1o0kb:b+b?0n0f4~bI9$4z9^7YbI6%6)c38G7K9`8P0L2f04010m0Q1Q0Q01a10z9=4Gcc10010E8a0v0B3Uclcn3-cpce0Z80170Lckb57)10cmc78^cA010p1#0h5f0,0xcGa(4{cJcy2icN946@cV4Ec84H10a36Qb27d7faK8waM5B0v5RbS4i0T0r1ja_0lb;bW0fc b$d20Tb^02d0b;bYbWb/dad6dd0T8~3g12ba3s535ia9540,8J0L04.
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

.128013:pv(ui2edms=1 ow_lSnatf-)h],crg[yPkb/050j0i0w0v0g0s0l0o0D0s0v0l0l0m010w0g0c010406050l0f0k0k0v0E0H040t0p0s0f0$0p0u050L0-0/0;0?0+0c040 1605190L191b160+0j0g0d0U0W0Y0!0A0g0F0A0s1p0A0w0)050P0K0s0i1k0X0Z011o1q1s1q0w1y1A1w0w0K0p0j0?1x0E170w0A0U0_0l0c0v0u0!0h011C1m010x0R0i0u0v0k0i1w1!1$1+1E1.1A1;1?0)0a0o0I0E0p0c0p0l0g0|0u0o0N1Y0E0E0i0D2b0 1_0u170L1W2o0w1U1T1V0j1{0!1s0u1:281w1h1j0V1D2y0g2A0u1Q1i1w0c2h172m2o2S0,1#2c2G1,2L0E0:0s0)0n2l2W0*2V1`2Y1E2!2$0)0h2*1$2o2P0i2o2E2r0j2v2x010D1Q1@172~1a2Q2-2n2^3c340N2R2W320J0)0N0x3d3h2.1l1E0q0)0o3o3b320u0x0)340f2h3D0r1:0r27292k102+3x2/0!0(040e3w2m3y3B3r0i1?0u0w3U3i3P013R0C3o3v3V3)0u0)3J2a0g0}3%3q2H3*0)0z0b3o060o433.3(3r0!3k042h0w3D0~3M2_453{2Z3X1D3Z1:3$4f3c3/473}040G3`2X4s3;043?3L2S4h4x3|0p0)0y3-3O4s0k0g2(4w323R0B410 3f2|183a0L382p300 2s2r1P1R2r0v1z4X4!1i2,4!0O0Q0S04.