Debbugage
Découverte des exceptions⚓︎
Travail à faire
Chaque programme ci-dessous présente une erreur engendrant une exception.
Pour chaque programme :
- Identifier l'erreur générée en exécutant le code ;
- Décrire succintement la nature de l'erreur ;
- Proposer une correction pour le programme puisse s'exécuter
Programme 1
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
Programme 2
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Programme 3
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Programme 4
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Programme 5
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Programme 6
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Programme 7
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
Mise en pratique⚓︎
Le programme suivant présente de nombreux bugs.
class Balle:
'''Classe pour définir une balle graphique'''
couleur = {"rouge":(255,0,0), "vert":(0,255,0), "bleu":(0,0,255)}
def __init__(self, couleur):
self.couleur = couleur
self.x = 100
self.y = 100
def deplacer(self):
'''Mise à jour de la position de la balle par incrémentation des coordonnées'''
x += 1
y += 1
def __str__(self):
return "Position de la balle : "+self.x+", "+self.y
#Création de trois balles de couleurs différentes
balles = [Ballon("jaune"), Ballon("rouge"), Ballon("vert")]
for i in range(4):
balles[i].deplace()
print(balles[0])
Corriger le programme pour qu'il puisse s'exécuter sans erreur.
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests (insensible à la casse)(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(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
.128013So4l7s_60:Mw+pPn[1cji)-e3,(v];uyqBx./hgk2C=àtfra{9}8d ém5b050#0y0T0W0v0e0g0$0t0e0W0g0g0R010T0v0o010406050g0F0(0(0W0V0G040b0c0e0F0~0c0q050L1517191b130o04051r1k1u0L1r130#0v0C0?0^0`0|0^0q0N0F0W0N0y0x0o0G0T0M1i0$0M0v0N0M0e1W0M0T11050.0*0e0y1D0_0{011V1X1Z1X0T1)1+1%0T0V1s1R0?1e0g0o0W0q0|0P011-1F010U0:0y0q0W0(0y1%2224291/2c1+2f2h110a0$0p0V0c0o0c0g0v1h0q0$0,200V0V0y0t2C1k2k0q1s0L1R2P1|1~1}1(0#2m1G0v0q2e2z1%1A1C0@1.2Z2#0q0c2)1%0o2I1s2N2P2_14232D2+2a2/0V180e1%0W1U2I0U0|030h0h0t2:0y1Z2.0c0x0s3k110$0s1k0W2`2}122|2l2 1/313335370y39013b3d3f3h2$3k0x27040$0P3q3s243u2N2Y013z0W341s360M383a3c3e0,3J2/3L0z3n0z3R2M3t133V3x0|3Y3!053$3(3F3*3I2!3K3l0d3n0d3?1l3^3v2~1E3y0c323Z3B3%3D3)3H3,453.3l0)3n0)4b2_3_2}3W3}4l413G3+3g4r3j3l0i3n0i4x4d3`4g3|4i3A3#3C3E4F443i3L0f3n0f4O3T4z3w4R3X4T4k4V4m4X434q4!3l0!3n0!4)2O4+4f2,4.4j3~404n424p4H4_0x0Y3n0Y4~3U4A3{534U3 4W4o4G3-4J3k0j110s0j5g504B4/555n585p4I3L0s0s5u3p0L3r3@4*4e5z544D574Y4^463k3N0s3Q5L3S4 5P5j4C4;4E4@5a5W0s3:045:5x5(4-5*5m4=5o4Z5/485=4a5#5N5%4Q525`564?595q5G4u5=4w634c5O66305A5S6a5E5b0s4L5=4N6h4y5^676m5+5T5-6c3l0s4$5=4(6v4P5i5_6z5{5,6b5F6E4{5=4}6J6j6L6y5R6A6o5~4s3k5d5=5f6W656Y6l6!6O6B6Q5b0P5t046_5@6k4h6;695}5V6(0P5I6{5K5M6i6.4,6Z5l715D6%5r0P3N7j5g1v2@1k2)2S0#1~2X5j4G2(1B1s2?0y2^3t641s4G7C2l0v0#0|3c2N5G3B7J7L6@5/282q0y7R6p7T2P5M6~0|0O113x7E6x2a0m3n7+7$3X0t110I3Z1+7:6/1/10040k7E137a7H2D7Q017M2}3L3N5m866C6R3M7U2g7W877S741%637;7.3O0$8s7{7c2a0g0#1102030z0Y0E8A8C8E8B8D0Q4g1,2y0F0V2E0%2c0q0v8P0F2#0$0*7_1,0N0V0W0o1V0H0F0y8F8D8.8H8G818u857K8k7N3l5;8c8_8e5b3:0$7V7X7h3/8n3r8s8t7;0q7)0c0F1+8O7E0$7,1/0c110R9j9l0|7~0X8@3W0g3N028+0c0T0E2w0F1M9z0F9B0E9v5j7~0k0B9L4-0(0v110P0)6g2{7;7~0A9Q529S115w839r019!9$2a9(049*9Y7|9s110w9#839k7;9x8z9A9C0C0y0V0T9H9J9/7}119Oaa0|9;9?7D9Z119|9@8v1/9;9V9Xai9^9-akae01agaw7~9{9q9 9ya20E1*0y0Fa89Cazac9P9+7;ayaPat9.aSanaf9T9=aM04alasaWaxaYaqa!0w0Z8?aV8^7R8{0x608~95735r48938ia`5.6(a^5#9a9~at7(040,0Uaw8q9ka:3W0U0(113c2!2B3ca!aOam512a0*7~0g3gbbbf9Mav9}9,9d043e9gaI0Va,808382bq0$8d0ha?6ea_8k7Y6(4ua~2hb06D0xbSb4b59a9,bt11bv0ebxbN5j9n040KawbDbF9hbIbB7;b?9pb~atb`9fb|a/bNbPa?6sbT905W4LbY8jcd6(cbb(b)b6a(b,04b.b:a%br9m11b^by5_110JaCatc0cCa(9;5vah5Obfc9893l6Gcc8l5r4$cgb!8fcPclb)b+bubwawb?cxb;cz040GcFcu0|cEc2cGaYcIc7ctbO8 bQcN0x6TcQbV5r4{cUbU964`983ucLc|a?6*d1d75c8hbZd6a{3LdecY9,b8babc7/cy670U110,0o0^0ta5boawcpcrbJc_3T5PcM245G6`dfdl6E5td5ci5r5vd99,bdcmbec*528x8z8I8;8/d*0l0vbv0$0S0$0u9f8P2F0^0$2y2A2C2E1,d{8Z0e1+d|19bO0q0t0V0%2h0q0.d 0,0=3e4i0#1i0q0%0y0g8:erd*dI2OdKdcc~5H7Pc|d25G5IdTcReDd9d!cnc/01dFc$du2ac(b_cAc.3Wb?0nc12_eK3WcHeu84c{a=ey8b36bPeC6E27eFe/5XeId!c!b-eOd$eQcweSc,eUb=11eXf29Rc@e%ewe*dM6E8}e-eBdg5:dicheGfdd9bMc`dL0q5Ga^ffcV6qa}94dkb1dVb399b*7;dq3Dds3OawbhbjbQ1|bnePab04bpc`5jeNb/dHbL9vfq6deAfv5/bXfydUf$7!8rcmdp112I0T8O1jc=eLa004aK0E0p2z2B0v1Td`36e3e50k0$f~c%f4b_0*b-1|dDfQ0|fWcsdJb e gj3XeTgqaAgc040nawf|f~0AgaaFgvgxgq0qgfcqghgt11fTgnatglgvc)fUc+c-gL040wf93Vf#6Ecbfufzb#6rfjf(6(g+f.fogO7Iexfc3kcPg(f,6EcTf+flg_dX7;0t76030Qeb0Weg1,1|0cd/8Y8!0=2Fb{bHhh0v0U0U0%2IeeepgZ4Ag#3kd0g{h00sd4g e?hAh2c311g7hsf`eV9of6527~0rf07^e40ygie}1/gzaFaHaJgDgWaBhK5)7@8!hVgTd%aE9I9C9E9Gh$hW9_gXa$3Te!h*04hS7`gWgNevaDa1h;0Ea4a6gbh%0Dhtg?fbfr6EdehyhD5de=fhdn3rg;i5hug@ii3MdOildg6_g,g)8fiBf.f;040U4ihN30110viL9m8q2!iP3|gI8%1IhUi3aw9;3=h%bK6wdbih8a76dPfAi,iCg|3Mi-do9chHhga!hQgGiNa!iegqeRi~b90ydz0WdBb}h_aufSgYfZi*8`c~7jf%iD6^e;hCiA8b8oc3gI2?2!0Th-g=eLbDhI0gi|i!aYcJita(7~0Djei)2{0L7G7n7B7p7y1k0T7sjU2V2Q0WaH2P7q820,0.0:0g04.
A vous de jouer...⚓︎
Crédits⚓︎
Page écrite par Pierre Marquestaut
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)