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
.128013cm/BS;f72q)é]hvbp9Ci(u8jo0g-{.d}w,My+àe[43lr_:6k5 x=asP1tn050F0N0)0#0u0R0$0Y0b0R0#0$0$0!010)0u0r010406050$0w0c0c0#0S0K040f0z0R0w0~0z0*050d1517191b130r04051r1k1u0d1r130F0u0p0?0^0`0|0^0*0B0w0#0B0N0C0r0K0)0o1i0Y0o0u0B0o0R1W0o0)11050.0q0R0N1D0_0{011V1X1Z1X0)1)1+1%0)0S1s1R0?1e0$0r0#0*0|0j011-1F010h0:0N0*0#0c0N1%2224291/2c1+2f2h110a0Y0%0S0z0r0z0$0u1h0*0Y0,200S0S0N0b2C1k2k0*1s0d1R2P1|1~1}1(0F2m1G0u0*2e2z1%1A1C0@1.2Z2#0*0z2)1%0r2I1s2N2P2_14232D2+2a2/0S180R1%0#1U2I0h0|030T0T0b2:0N1Z2.0z0C0(3k110Y0(1k0#2`2}122|2l2 1/313335370N39013b3d3f3h2$3k0C27040Y0j3q3s243u2N2Y013z0#341s360o383a3c3e0,3J2/3L0Q3n0Q3R2M3t133V3x0|3Y3!053$3(3F3*3I2!3K3l0P3n0P3?1l3^3v2~1E3y0z323Z3B3%3D3)3H3,453.3l0X3n0X4b2_3_2}3W3}4l413G3+3g4r3j3l0V3n0V4x4d3`4g3|4i3A3#3C3E4F443i3L0i3n0i4O3T4z3w4R3X4T4k4V4m4X434q4!3l0x3n0x4)2O4+4f2,4.4j3~404n424p4H4_0C0s3n0s4~3U4A3{534U3 4W4o4G3-4J3k0A110(0A5g504B4/555n585p4I3L0(0(5u3p0d3r3@4*4e5z544D574Y4^463k3N0(3Q5L3S4 5P5j4C4;4E4@5a5W0(3:045:5x5(4-5*5m4=5o4Z5/485=4a5#5N5%4Q525`564?595q5G4u5=4w634c5O66305A5S6a5E5b0(4L5=4N6h4y5^676m5+5T5-6c3l0(4$5=4(6v4P5i5_6z5{5,6b5F6E4{5=4}6J6j6L6y5R6A6o5~4s3k5d5=5f6W656Y6l6!6O6B6Q5b0j5t046_5@6k4h6;695}5V6(0j5I6{5K5M6i6.4,6Z5l715D6%5r0j3N7j5g1v2@1k2)2S0F1~2X5j4G2(1B1s2?0N2^3t641s4G7C2l0u0F0|3c2N5G3B7J7L6@5/282q0N7R6p7T2P5M6~0|0W113x7E6x2a0H3n7+7$3X0b110e3Z1+7:6/1/10040U7E137a7H2D7Q017M2}3L3N5m866C6R3M7U2g7W877S741%637;7.3O0Y8s7{7c2a0$0F1102030Q0s0g8A8C8E8B8D0t4g1,2y0w0S2E0m2c0*0u8P0w2#0Y0q7_1,0B0S0#0r1V0k0w0N8F8D8.8H8G818u857K8k7N3l5;8c8_8e5b3:0Y7V7X7h3/8n3r8s8t7;0*7)0z0w1+8O7E0Y7,1/0z110!9j9l0|7~0D8@3W0$3N028+0z0)0g2w0w1M9z0w9B0g9v5j7~0U0v9L4-0c0u110j0X6g2{7;7~0I9Q529S115w839r019!9$2a9(049*9Y7|9s110l9#839k7;9x8z9A9C0p0N0S0)9H9J9/7}119Oaa0|9;9?7D9Z119|9@8v1/9;9V9Xai9^9-akae01agaw7~9{9q9 9ya20g1*0N0wa89Cazac9P9+7;ayaPat9.aSanaf9T9=aM04alasaWaxaYaqa!0l0G8?aV8^7R8{0C608~95735r48938ia`5.6(a^5#9a9~at7(040,0haw8q9ka:3W0h0c113c2!2B3ca!aOam512a0q7~0$3gbbbf9Mav9}9,9d043e9gaI0Sa,808382bq0Y8d0Ta?6ea_8k7Y6(4ua~2hb06D0CbSb4b59a9,bt11bv0RbxbN5j9n040EawbDbF9hbIbB7;b?9pb~atb`9fb|a/bNbPa?6sbT905W4LbY8jcd6(cbb(b)b6a(b,04b.b:a%br9m11b^by5_110ZaCatc0cCa(9;5vah5Obfc9893l6Gcc8l5r4$cgb!8fcPclb)b+bubwawb?cxb;cz040KcFcu0|cEc2cGaYcIc7ctbO8 bQcN0C6TcQbV5r4{cUbU964`983ucLc|a?6*d1d75c8hbZd6a{3LdecY9,b8babc7/cy670h110,0r0^0ba5boawcpcrbJc_3T5PcM245G6`dfdl6E5td5ci5r5vd99,bdcmbec*528x8z8I8;8/d*0J0ubv0Y0M0Y0y9f8P2F0^0Y2y2A2C2E1,d{8Z0R1+d|19bO0*0b0S0m2h0*0.d 0,0=3e4i0F1i0*0m0N0$8:erd*dI2OdKdcc~5H7Pc|d25G5IdTcReDd9d!cnc/01dFc$du2ac(b_cAc.3Wb?0Lc12_eK3WcHeu84c{a=ey8b36bPeC6E27eFe/5XeId!c!b-eOd$eQcweSc,eUb=11eXf29Rc@e%ewe*dM6E8}e-eBdg5:dicheGfdd9bMc`dL0*5Ga^ffcV6qa}94dkb1dVb399b*7;dq3Dds3OawbhbjbQ1|bnePab04bpc`5jeNb/dHbL9vfq6deAfv5/bXfydUf$7!8rcmdp112I0)8O1jc=eLa004aK0g0%2z2B0u1Td`36e3e50U0Yf~c%f4b_0qb-1|dDfQ0|fWcsdJb e gj3XeTgqaAgc040Lawf|f~0IgaaFgvgxgq0*gfcqghgt11fTgnatglgvc)fUc+c-gL040lf93Vf#6Ecbfufzb#6rfjf(6(g+f.fogO7Iexfc3kcPg(f,6EcTf+flg_dX7;0b76030teb0#eg1,1|0zd/8Y8!0=2Fb{bHhh0u0h0h0m2IeeepgZ4Ag#3kd0g{h00(d4g e?hAh2c311g7hsf`eV9of6527~0Of07^e40Ngie}1/gzaFaHaJgDgWaBhK5)7@8!hVgTd%aE9I9C9E9Gh$hW9_gXa$3Te!h*04hS7`gWgNevaDa1h;0ga4a6gbh%0nhtg?fbfr6EdehyhD5de=fhdn3rg;i5hug@ii3MdOildg6_g,g)8fiBf.f;040h4ihN30110uiL9m8q2!iP3|gI8%1IhUi3aw9;3=h%bK6wdbih8a76dPfAi,iCg|3Mi-do9chHhga!hQgGiNa!iegqeRi~b90Ndz0#dBb}h_aufSgYfZi*8`c~7jf%iD6^e;hCiA8b8oc3gI2?2!0)h-g=eLbDhI0$i|i!aYcJita(7~0njei)2{0d7G7n7B7p7y1k0)7sjU2V2Q0#aH2P7q820,0.0:0$04.
A vous de jouer...⚓︎
Crédits⚓︎
Page écrite par Pierre Marquestaut
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)