La course cycliste(III)

Une course cycliste se déroule sur un circuit permettant de nombreux dépassements.

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

Chaque cycliste est identifié par un dossard sur lequel est inscrit son prénom : "Nadia", "Djamil"...
On garantit que tous les prénoms sont différents.

Leurs places dans le classement sont stockées de façon ordonnée dans une liste : le premier du classement se trouve à la première position de la liste, le deuxième à la deuxième position, etc... Par exemple classement_actuel = ["Nadia", "Djamil", "Thomas", "Elizabeth", "Laure"]. Nadia est la première et Laure la dernière.

Écrire la fonction position qui prend en paramètres le tableau qui stocke la course et une chaine de caractères contenant le dossard d'un cycliste et qui renvoie la place de ce cycliste dans la course. On supposera que le dossard donné est bien présent dans le classement.

Attention

La place du coureur dans le classement ne correspond pas exactement à l'indice du tableau : le coureur à la première place sera à la première position du tableau, celui à la deuxième place en deuxième position, etc...

>>> position(classement_actuel, "Nadia")
1
>>> position(classement_actuel, "Thomas")
3
###(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
.128013s3obcdufvg/ly napSr1me,(P2=4:+twki][h)050g0w0F0q0I0m0b0o0f0m0q0b0b0B010F0I0r010406050b0h0v0v0q0t0n040s0d0m0h0%0d0p050l0.0:0=0@0,0r041017051a0l1a1c170,0g0I0j0V0X0Z0#0L0I0k0L0m1q0L0F0*050Q0e0m0w1l0Y0!011p1r1t1r0F1z1B1x0F0e0d0g0@1y0t180F0L0V0`0b0r0q0p0#0A011D1n010i0S0w0p0q0v0w1x1#1%1,1F1/1B1=1@0*0a0o0z0t0d0r0d0b0I0}0p0o0O1Z0t0t0w0f2c101`0p180l1X2p0F1V1U1W0g1|0#1t0p1;291x1i1k0W1E2z0I2B0p1R1j1x0r2i182n2p2T0-1$2d2H1-2M0t0;0m0*0u2m2X0+2W1{2Z1F2#2%0*0A2+1%2-2n2y012=0q2(040c2_2o0,2|2:0#2 310C342p2Q0w2p2F2s0g2w2}0f1R1^183i1b2R2.2o3d053n0O2S2X2}0H0*0O0i3w371m1F0G0*0o3H3B382~0i0*282a2l112,3u2}0)040y3O2/3J390*2:0w1@0p0F3(2Y3*013#0x3d3N3I2I2~3E290b0=0g3=3!0*0M0D3d060o4c3|3P3@3D040i0d0t3{3Z3Q0p0*0I4m3}1-0d3L042K4s4f3~0p0e0*0t1%0k0w453Q3#3%3X2`4n3@4C0*1 4J3@4L4U4B3,3J3.1;3;4N3v4t1F3#0M484a4d4:4e3)3~4h0I3G4(044=3?4Y043-3/4%2V4*0#3#0K4X2!4q594+0*0J4z4?4u0*0B0B5g4~5a040g41435c560*494{4b4;5z4P4@4E0P0h0t0 4{4}2}4p4x5m2}0d0*0E5N3Q0v0I2)4a103y3g193t0l3r2q3k102t2s1Q1S2s0q1A5!5%1j2-5%0P0R0T04.

Il peut arriver qu'un cycliste crève, et se fasse doubler par tous les autres coureurs et se retrouve à la dernière place, puis reparte.

On dispose de la fonction dernier qui prend en paramètre le tableau qui stocke la course et qui renvoie le coureur à la dernière place du classement.

Exemple
>>> dernier(classement_actuel)
'Laure'

On dispose de la fonction depasse qui prend en paramètres le tableau qui stocke la course et la place d'un coureur et modifie puis renvoie le tableau avec le coureur qui est passé devant le coureur précédent.

Exemple
>>> classement_actuel = ["Nadia", "Djamil", "Thomas", "Elizabeth", "Laure"]
>>> depasse(classement_actuel, 3)
>>> classement_actuel
['Nadia', 'Thomas', 'Djamil', 'Elizabeth', 'Laure']
  • Écrire la fonction crevaison qui prend en paramètres le tableau qui stocke la course et le dossard d'un coureur qui a crevé et modifie puis renvoie le tableau.
Modification en place

La liste classement est directement modifiée, il ne faut pas construire une nouvelle liste.

Il est inutile de la renvoyer modifiée.

Indication

On partira du principe que tous les coureurs derrière le malchanceux coureur le doublent jusqu'à ce que le coureur soit le dernier.

Contrainte

On utilisera obligatoirement les fonctions position, depasse et dernier.

Exemple
>>> crevaison(course, "Thomas")
>>> classement_actuel
['Nadia', 'Djamil', 'Elizabeth', 'Laure', '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
.128013s3o_bcdufvg/ly napS!r1me,(P2=4:+twki5h)050h0y0H0r0K0n0b0p0g0n0r0b0b0D010H0K0s010406050b0i0x0x0r0v0o040t0d0n0i0(0d0q050m0/0;0?0^0-0s041118051b0m1b1d180-0h0K0k0W0Y0!0$0M0K0l0M0n1r0M0H0+050R0f0n0y1m0Z0#011q1s1u1s0H1A1C1y0H0f0d0h0^1z0v190H0M0W0{0b0s0r0q0$0C011E1o010j0T0y0q0r0x0y1y1$1(1-1G1:1C1?1^0+0a0p0B0v0d0s0d0b0K0~0q0p0P1!0v0v0y0g2d111{0q190m1Y2q0H1W1V1X0h1}0$1u0q1=2a1y1j1l0X1F2A0K2C0q1S1k1y0s2j192o2q2U0.1%2e2I1.2N0v0=0n0+0w2n2Y0,2X1|2!1G2$2(0+0C2,1(2.2o2z012?0r2)040c2`2p0-2}2;0$30320E352|2Y2~3b0+0L3e1a2S112G2t0h2x2~0g1S1_193p1c3n2W122-053u0P2T3g39010J0+0P0j3l381n1G0I0+0p3P3I3R3a0j0+0g2j0k0S0b0 3W2:3Y010*040A3,2Z3.0q3#3R0y1^0q0H3?2~3:0z3e3V3Q2J2 3M2a0b0?0h403J3:0N0F3e060p4l453X473_04292b2d0e3u0i2j4x442/3@470d0+0D4A462#0+4s2c0K3+3C2{4B410+3=4P2p4R3J4q2;3|1=3 4V3H3-47424H4o4J040h4a4c4e3.4g4j4m4n4*1.3L040I1q1C4-4}2=490!4?4(4|4C1.4E040u4G5a4X3^3M0y0v0q0K5m4@4+4T5r4/4!3}4%2W4I1G4g4i4(4k4{4m5j4p5l1%0!0y5u5B5t4(5I5v3{5x5O0$4,5i5A3a4K2a4M0 4v0d4x0y4z5Z4.1G5e0G545c1G0x0K2*5W3/0+0N4`5G4l5S564r5%4u4w4y0v5@2~5=5h2U5b2~5`5|5E113F0y2q2R6o3o1k3q2t2v2r1R1T2t0r1B6r0m3p0-6E0Q0S0U04.