Aller au contenu

Création d'une classe Pile à l'aide de list

La cadre

Créer une classe Pile, c'est coder les méthodes suivantes :

  • __init__ : l'initialiseur permet d'obtenir une instance de Pile vide.
  • est_vide : revoie un booléen ; True si l'instance est vide.
  • empile : modifie l'instance en ajoutant un élément au sommet.
  • dépile : modifie l'instance en supprimant l'élément au sommet et le renvoie.

Exercice

Coder une classe Pile qui s'appuie sur les listes dynamiques de Python.

👍 On pourra utiliser raise ValueError("Pile vide !") pour provoquer volontairement une erreur, si besoin. (Aucune obligation dans cet exercice)

Dernier test volontairement faux

Cliquer sur chaque (+) pour voir le détail des remarques.

🐍 Script Python
# TESTS
ma_pile = Pile()  # (1)!
ma_pile.empile(1337)  # (2)!
ma_pile.empile(42)  # (3)!
y = ma_pile.dépile()  # (4)!
assert y == 42      # (5)!
y = ma_pile.dépile()  # (6)!
assert y == 1337    # (7)!
y = ma_pile.dépile()  # (8)!
  1. ma_pile est créée, une pile vide ; []
  2. ma_pile devient [1337]
  3. ma_pile devient [1337, 42]
  4. ma_pile devient [1337] et y devient 42
  5. Aucune erreur ne sera provoquée ici.
  6. ma_pile devient [] et y devient 1337
  7. Aucune erreur ne sera provoquée ici.
  8. ⚠ Une erreur sera provoquée, on ne dépile pas d'une pile vide !
📤 Sortie
Script lancé...
Traceback (most recent call last):
File "<exec>", line 26, in <module>
File "<exec>", line 15, in dépile
ValueError: Pile vide !
>>>
###(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 : /
.128013],59/f.q!78rnb _o=ylaepcwgu)vdV4613kméhtsP(S02C[i:E050E0w0O0v0X0u0P0p0y0u0v0P0P0s010O0X0x010406050P0B0L0L0v0m0t040S0r0u0B0@0r0n050f0~1012140|0x04051k1d1n0f1k0|0E0X0D0,0.0:0=0N0X0A0N0u1B0N0O0`050%0o0u0w1w0/0;011A1C1E1C0O1K1M1I0O0m1l0O0N1O1y010g0)0w0n0v0L0w010,170P0x0v0n0=0U1I1_1{1)1Q1,1M1/1;0`0a0p0Q0m0r0x0r0P0X1a0n0p0#1@0m0m0w0y2i1d200n1l0f1%2v1!1$1#1J0E220=1E0n1.2f1I1t1v0-1P2F0X2H0n0r2L1I0x2o1l2t2v2Z0}1`2j2N1*2S0m110u0`0p0I2s2%0{2$212)1Q2+2-2/0U2=1{2@2t2E012|0v2.040p0J302u0|332`0=36380p0G3c322%343i2/0d3m3e3o3g350r2,372/0H3t2^2(1x2{3y2}390k3D3f3G3h3I3A390l3M3v3O3x3z3j0e3U2_3W3q040I0T3#3F2O3X3J0I2;1e2?3u3$3.3(0I2 3?313^3-2*3Q380I3b3~3d3E3p430`0I3l473n3_423Y4c3s4f404a4j3)3C4m493w3{3L4f1o2X1d2L2y0E1$2D3w0y2T1=1l4B1m4z2#4x4H0#2Y3V3.0K0`2`3m4t3W0z2/4Y3N3`0y0`0Q1-4%4T1*0_040R0C0Y3,344#390p4}4.4h1Q0P0E0`01550V3G1N4,1M0p0v0D2p0p1M0+1E0P0O0w0+0E0t260X0i0B5m2k590t1%1b55013t064}4~4(1*4V040#0g4 411Q4{0p5M340g0L0`0q0q2Q2h5W5R3w4;0R5#3W0o4;0P0w0u5L4x5G1Q4;4@3t5E5`5Q5=0=5+0`5-5/5)3.0r0`0h632*0`0E1b0n0M5m3m5|4/1Q65040s6g4Z3.4;0W0b5C5`6o5H6a0w5:2#5}015P682{0g0`5m0O0q0D0X0#6E0=5%6O015 04616z2?6v5?0`5^4m5{5E6Y0=5I2o0O0B0m1c4f6h505~5,5.6W316)016k675;6i3h6a6c6e0P6n6B6k0s6m6;6|6q6s4m5D6(6B5I5K6R6D706?356G040w0L0x4-7o5N6P0`5(7x346T6V6R4;0c7771350`0M0u0M1;0n0O7G6!4^6$6%6=7y6S6^627C3w6~6R0n730n6d6f7%3W7)7:3`0`0v0x0x1.0E7T4=7*7M7O7Q7S7?4:6!6t7i7K7k6y7m4$856F6a0M7v1M7~7B6A7K7E6_7~6#2Z7h6%6|5I0X6`2u7Y7D7#8z4S7p7=8n7p7+5J747/2Z8B7(0`7a7J7p7e7V8t7X5{8w0`0m0(5-8T7Z2H0`0F375t0Z2n3y8l6R0P1~04015a1N6L2l0j5B8f7z040C5_7X8!7s0*0w7~8W3@8Y6u7j8#0$6.6:8O6|8p7$8I7Z8H6X6B8K6b7-756R9s6{9u0`2e0x8l954s0f4Q0w2v2W9L4A1u4C2y2B2w0v1L9O0f4B0|9Y0$0(0*04.