Création d'une classe File à l'aide de list
La cadre
Créer une classe File, c'est coder les méthodes suivantes :
__init__: l'initialiseur permet d'obtenir une instance deFilevide.est_vide: revoie un booléen ;Truesi l'instance est vide.enfile: modifie l'instance en ajoutant un élément à la queue.défile: modifie l'instance en supprimant l'élément en tête et le renvoie.
Exercice
Coder une classe File qui s'appuie sur les listes dynamiques de Python.
On pourra utiliser
raise ValueError("File vide !") pour provoquer volontairement une erreur, si besoin. (Aucune obligation dans cet exercice)
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)vdV46F13kméhtsP(S02C[i:E050E0w0P0v0Y0u0Q0p0y0u0v0Q0Q0s010P0Y0x010406050Q0B0M0M0v0m0t040T0r0u0B0^0r0n050f0 1113150}0x04051l1e1o0f1l0}0E0Y0D0-0/0;0?0O0Y0A0O0u1C0O0P0{050(0o0u0w1x0:0=011B1D1F1D0P1L1N1J0P0m1m0P0O1P1z010g0*0w0n0v0M0w010-180Q0x0v0n0?0V1J1`1|1*1R1-1N1:1=0{0a0p0R0m0r0x0r0Q0Y1b0n0p0$1^0m0m0w0y2j1e210n1m0f1(2w1#1%1$1K0E230?1F0n1/2g1J1u1w0.1Q2G0Y2I0n0r2M1J0x2p1m2u2w2!0~1{2k2O1+2T0m120u0{0p0J2t2(0|2%222*1R2,2.2:0V2?1|2^2u2F012}0v2/040p0K312v0}342{0?37390p0G3d332(353j2:0d3n3f3p3h360r2-382:0H3u2_2)1y2|3z2~3a0k3E3g3H3i3J3B3a0l3N3w3P3y3A3k0e3V2`3X3r040J0U3$3G2P3Y3K0J2=1f2@3v3%3/3)0J303@323_3.2+3R390J3c3 3e3F3q440{0J3m483o3`433Z4d3t4g414b4k3*3D4n4a3x3|3M4g1p2Y1e2M2z0E1%2E3x0y2U1?1m4C1n4A2$4y4I0$2Z3W3/0L0{2{3n4u3X0z2:4Z3O3{0y0{0I1.4(4U1+0`040S0C0Z3-354$3a0p4~4/4i1R0Q0E0{01560W3H1O4-1N0p0v0D2q0p1N0,1F0Q0P0w0,0E0t270Y0i0B5n2l1O0R0t1(1c56013u064~4 4)1+4W040$0g50421R4|0p5O350g0M0{0q0q2R2i5Y5T3x4=0S5%3X0o4=0Q0w0u5N4y5I1R4=4^3u5G5|5S5@0?5-0{5/5;5+3/0r0{0h652+0{0E1c0n0N5n3n5~4:1R67040s6i4!3/4=0X0b5E5|6q5J6c0w5=2$5 015R6a2|0g0{5n0P0q0D0Y0$6G0?5)6Q016104636B2@6x5^0{5`4n5}5G6!0?5K2p0P0B0m1d4g6j51605.5:6Y326+016m695?6k3i6c6e6g0Q6p6D6m0s6o6?6~6s6u4n5F6*6D5K5M6T6F726^366I041/250w6T6S7q5P6_626{7y0{0c7973360{0N0u0N1=0n0P7F046%2!7j6)6~6V6X6T706T0n750n6f6h7A357$7-4v0{0v0x0x1/0E7S5*7:3(7L7N7P7R7}6r6$6v7k7J7m6A7o4%832+7t0E0N7w7{6T7Z7E8d6#7T4_6(6)6@7B015K0Y6|2v8t358l648n0?7/6C7J7(5L767,2!8A3x7b7d8N7f0{6t8q7V8s5}6~6-0)5/7I7r2I0{0F385u0!2o3z8j8E010Q1 04015b1O6N2m0j5D8?5_5{8s8!6J0+7x920{8W3^8Y6w7l0{6.6:6=8S6D8C8y4T7r8G6Z6D8J6d7*777#687%0{2f0x8=8H7r0M0Y0{3,9a7T3E0f4R0w2w2X9Q4B1v4D2z2C2x0v1M9T0f4C0}9%0%0)0+04.
Dernier test volontairement faux
🐍 Script Python
# TESTS
ma_file = File() # (1)!
ma_file.enfile(1337) # (2)!
ma_file.enfile(42) # (3)!
y = ma_file.défile() # (4)!
assert y == 1337 # (5)!
y = ma_file.défile() # (6)!
assert y == 42 # (7)!
y = ma_file.défile() # (8)!
ma_fileest créée, une file vide ;[]ma_filedevient[1337]ma_filedevient[1337, 42]ma_filedevient[42]etydevient1337- Aucune erreur ne sera provoquée ici.
ma_filedevient[]etydevient42- Aucune erreur ne sera provoquée ici.
Une erreur sera provoquée, on ne défile pas d'une file vide !
📤 Sortie
Script lancé...
Traceback (most recent call last):
File "<exec>", line 26, in <module>
File "<exec>", line 15, in dépile
ValueError: File vide !
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)