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
.128013a3=gMvuth0x[/àqj8k).éb6r7 +pc{}5l:SfB(Cms1_i2n]ow;ey4d9P,-050$0Z0i0b0S0H0P0A0D0H0b0P0P0d010i0S0C010406050P0h0O0O0b0y0!040J0W0H0h0~0W0U050n1517191b130C04051r1k1u0n1r130$0S0g0?0^0`0|0^0U0e0h0b0e0Z0*0C0!0i0j1i0A0j0S0e0j0H1W0j0i11050.0w0H0Z1D0_0{011V1X1Z1X0i1)1+1%0i0y1s1R0?1e0P0C0b0U0|0T011-1F010K0:0Z0U0b0O0Z1%2224291/2c1+2f2h110a0A0(0y0W0C0W0P0S1h0U0A0,200y0y0Z0D2C1k2k0U1s0n1R2P1|1~1}1(0$2m1G0S0U2e2z1%1A1C0@1.2Z2#0U0W2)1%0C2I1s2N2P2_14232D2+2a2/0y180H1%0b1U2I0K0|030R0R0D2:0Z1Z2.0W0*0Q3k110A0Q1k0b2`2}122|2l2 1/313335370Z39013b3d3f3h2$3k0*27040A0T3q3s243u2N2Y013z0b341s360j383a3c3e0,3J2/3L0c3n0c3R2M3t133V3x0|3Y3!053$3(3F3*3I2!3K3l0#3n0#3?1l3^3v2~1E3y0W323Z3B3%3D3)3H3,453.3l0G3n0G4b2_3_2}3W3}4l413G3+3g4r3j3l0x3n0x4x4d3`4g3|4i3A3#3C3E4F443i3L0z3n0z4O3T4z3w4R3X4T4k4V4m4X434q4!3l0r3n0r4)2O4+4f2,4.4j3~404n424p4H4_0*0%3n0%4~3U4A3{534U3 4W4o4G3-4J3k0k110Q0k5g504B4/555n585p4I3L0Q0Q5u3p0n3r3@4*4e5z544D574Y4^463k3N0Q3Q5L3S4 5P5j4C4;4E4@5a5W0Q3:045:5x5(4-5*5m4=5o4Z5/485=4a5#5N5%4Q525`564?595q5G4u5=4w634c5O66305A5S6a5E5b0Q4L5=4N6h4y5^676m5+5T5-6c3l0Q4$5=4(6v4P5i5_6z5{5,6b5F6E4{5=4}6J6j6L6y5R6A6o5~4s3k5d5=5f6W656Y6l6!6O6B6Q5b0T5t046_5@6k4h6;695}5V6(0T5I6{5K5M6i6.4,6Z5l715D6%5r0T3N7j5g1v2@1k2)2S0$1~2X5j4G2(1B1s2?0Z2^3t641s4G7C2l0S0$0|3c2N5G3B7J7L6@5/282q0Z7R6p7T2P5M6~0|0s113x7E6x2a0X3n7+7$3X0D110L3Z1+7:6/1/10040I7E137a7H2D7Q017M2}3L3N5m866C6R3M7U2g7W877S741%637;7.3O0A8s7{7c2a0P0$1102030c0%0Y8A8C8E8B8D0N4g1,2y0h0y2E0v2c0U0S8P0h2#0A0w7_1,0e0y0b0C1V0p0h0Z8F8D8.8H8G818u857K8k7N3l5;8c8_8e5b3:0A7V7X7h3/8n3r8s8t7;0U7)0W0h1+8O7E0A7,1/0W110d9j9l0|7~0E8@3W0P3N028+0W0i0Y2w0h1M9z0h9B0Y9v5j7~0I0M9L4-0O0S110T0G6g2{7;7~0)9Q529S115w839r019!9$2a9(049*9Y7|9s110t9#839k7;9x8z9A9C0g0Z0y0i9H9J9/7}119Oaa0|9;9?7D9Z119|9@8v1/9;9V9Xai9^9-akae01agaw7~9{9q9 9ya20Y1*0Z0ha89Cazac9P9+7;ayaPat9.aSanaf9T9=aM04alasaWaxaYaqa!0t0F8?aV8^7R8{0*608~95735r48938ia`5.6(a^5#9a9~at7(040,0Kaw8q9ka:3W0K0O113c2!2B3ca!aOam512a0w7~0P3gbbbf9Mav9}9,9d043e9gaI0ya,808382bq0A8d0Ra?6ea_8k7Y6(4ua~2hb06D0*bSb4b59a9,bt11bv0HbxbN5j9n040uawbDbF9hbIbB7;b?9pb~atb`9fb|a/bNbPa?6sbT905W4LbY8jcd6(cbb(b)b6a(b,04b.b:a%br9m11b^by5_110laCatc0cCa(9;5vah5Obfc9893l6Gcc8l5r4$cgb!8fcPclb)b+bubwawb?cxb;cz040!cFcu0|cEc2cGaYcIc7ctbO8 bQcN0*6TcQbV5r4{cUbU964`983ucLc|a?6*d1d75c8hbZd6a{3LdecY9,b8babc7/cy670K110,0C0^0Da5boawcpcrbJc_3T5PcM245G6`dfdl6E5td5ci5r5vd99,bdcmbec*528x8z8I8;8/d*0f0Sbv0A0o0A0q9f8P2F0^0A2y2A2C2E1,d{8Z0H1+d|19bO0U0D0y0v2h0U0.d 0,0=3e4i0$1i0U0v0Z0P8:erd*dI2OdKdcc~5H7Pc|d25G5IdTcReDd9d!cnc/01dFc$du2ac(b_cAc.3Wb?0Bc12_eK3WcHeu84c{a=ey8b36bPeC6E27eFe/5XeId!c!b-eOd$eQcweSc,eUb=11eXf29Rc@e%ewe*dM6E8}e-eBdg5:dicheGfdd9bMc`dL0U5Ga^ffcV6qa}94dkb1dVb399b*7;dq3Dds3OawbhbjbQ1|bnePab04bpc`5jeNb/dHbL9vfq6deAfv5/bXfydUf$7!8rcmdp112I0i8O1jc=eLa004aK0Y0(2z2B0S1Td`36e3e50I0Af~c%f4b_0wb-1|dDfQ0|fWcsdJb e gj3XeTgqaAgc040Bawf|f~0)gaaFgvgxgq0Ugfcqghgt11fTgnatglgvc)fUc+c-gL040tf93Vf#6Ecbfufzb#6rfjf(6(g+f.fogO7Iexfc3kcPg(f,6EcTf+flg_dX7;0D76030Neb0beg1,1|0Wd/8Y8!0=2Fb{bHhh0S0K0K0v2IeeepgZ4Ag#3kd0g{h00Qd4g e?hAh2c311g7hsf`eV9of6527~0mf07^e40Zgie}1/gzaFaHaJgDgWaBhK5)7@8!hVgTd%aE9I9C9E9Gh$hW9_gXa$3Te!h*04hS7`gWgNevaDa1h;0Ya4a6gbh%0Vhtg?fbfr6EdehyhD5de=fhdn3rg;i5hug@ii3MdOildg6_g,g)8fiBf.f;040K4ihN30110SiL9m8q2!iP3|gI8%1IhUi3aw9;3=h%bK6wdbih8a76dPfAi,iCg|3Mi-do9chHhga!hQgGiNa!iegqeRi~b90Zdz0bdBb}h_aufSgYfZi*8`c~7jf%iD6^e;hCiA8b8oc3gI2?2!0ih-g=eLbDhI0Pi|i!aYcJita(7~0Vjei)2{0n7G7n7B7p7y1k0i7sjU2V2Q0baH2P7q820,0.0:0P04.
A vous de jouer...⚓︎
Crédits⚓︎
Page écrite par Pierre Marquestaut
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)