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 dePilevide.est_vide: revoie un booléen ;Truesi 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)!
ma_pileest créée, une pile vide ;[]ma_piledevient[1337]ma_piledevient[1337, 42]ma_piledevient[1337]etydevient42- Aucune erreur ne sera provoquée ici.
ma_piledevient[]etydevient1337- Aucune erreur ne sera provoquée ici.
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 !
>>>
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
.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.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)