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
.128013f6S=dpBg2mC{j 8P5)kuM}s_hq0:4yr./oxbc1w937ve[l,+tài]né;a(050f0S0X0(0Z0U0x0o0L0U0(0x0x0e010X0Z0g010406050x0u0k0k0(0F0E040d0I0U0u0}0I0#050H1416181a120g04051q1j1t0H1q120f0Z0R0=0@0_0{0z0Z0i0z0U1H0z0X10050-0K0U0S1C0^0`011G1I1K1I0X1Q1S1O0X0F1r0X0z0=1d0x0g0(0#0{0j011U1E010b0/0S0#0(0k0S1O1;1?1{1W1~1S2123100a0o0q0F0I0g0I0x0Z1g0#0o0+1/0F0F0S0L2o1j260#1r0H1-2B1*1,1+1P0f280{1K0#202l1O1z1B0?1V2L0Z2N0#0I2R1O0g2u1r2z2B2)131=2p2T1|2Y0F170U100o0M2y2-112,272/1W2;2?2^0j2{1?2}2z2K01320(2@040o0P362A1239300{3c3e0o0D3i382-3a3o2^0r3s3k3u3m3b0I2=3d2^0c3z2~2.1D313E333f0Q3J3l3M3n3O3G3f0p3S3B3U3D3F3p0O3!2 3$3w040M0B3+3L2U3%3P0M2`1k2|3A3,3@3.0M353|373~3?2:3W3e0M3h443j3K3v49100M3r4d3t3 483(4i3y4l464g4p3/3I4s4f3C413R4y3T404h3/3Z4D3#4F4v0M3*4J4n3N4v0j3;4P474R3P0j3{2)4t4A4G0j432+1w2%1j2R2E0f1,2J3C0L2Z241r4/1s4-4+2+4^0+2(4K1|0t10303s4z3$0N2^594E2:0L100h3d1S5e541W0 040C3=3a5c3f0o5w5m4Q0{0x0f1002030P0O0%5E5G5I5F5H0l3M1T2k0u0F2q0$1~0#0Z5T0u2N0o0K5k1T0i0F0(0g1G0A0u0S5J5H5=5L5K3z5w5x5f31570I0u1S5S3s0o5a3@0I100e64661|5p0m5y4W5A1_04025/0I0X0%2i0u0i5;6m6o6g3a5p0C0)6w3C0k0Z100j0r4r2+5}0{5p0V6B3$6D104U6J5n6L106N4l6c1W6Q046S2|6Z6V040s6X2)656K010x6j6l0u6n0%0R0S0F0X6@6_6O3@6y6A6Y6:6#6%376)016M711|6#6G6I6(6:7c756U01777d5o106,6b6:6=5D6u0%1R0S0u6 6v7l5z7b106z7p0{7o7E6h7G046-7i7m7L6T7F7k7U7N7f6H7J7O0s0w5`5{7a56040+0b7#5u657M3a0b0k100y0y2W2n7{7#5p747X3a0K5p0x0S0U7/7?3C7W2|6/7m0#5 617A0F807r5r4s5{8q8f7F851087897#68040G7#8h044^8j634l8s7N8z6a8I7a8D8F628l8p8r5|7m8u048w8a833C8z8B8b3-100J7t7m8L8-7F6#3:783j8U8V8t86888!7R7F8%8C100E8:8K69953a8=0B8@11068q7+107.7:5d8)400b9h0S0g0@0L6|8m04828 7N8X8Z9u0s8o4#7a7;8_7#5B5D5M5^5?9L0v0Z870o0Y0o0n605T2r0@0o2k2m2o2q1T9Z5%0U1S9!180o2W0L0F0$230#0-9%0+0;4^3E0f1h0#0$0S0x5@a69L7)8U7a9z8}8y108(8#8*048,8N6:8z0W8M6.7a8=a98rab8|8x9l1|91ay5~0494al8.10ao986C6E3/3z9e7*6:7,9iaB0{7;7#7^7`0y0x1*7 aT7O9w796:acaxah728nat9faQ102u0X5S1iaF7F7v6k7x0q2l2n0Z1h9(0o9*5(0o0C0o7C0%ae040W8C0K8v1*9ua)2Aav8vada%aAa.2:8+9Bbfbha%a~bd0Vbc7xbybibk8Sbu7q9v7#a,8~a*aG8A92aDbx4s4$3$0L0M10030l9?0(9{1T1*0I9Q5$5(0;2r8Q8kb;0Z0b0b0$2u9_a45s4A109+1S0xaJ3$8/a|7N5p0TbT5j9,0Sbm9I6?7x7z7BbFa%5p7sc93v5i5(chbAcj6^6o6q6sbd9B7Q378Jcs04ce5lco10bn53a}cx6_6{6}cCcL6+0!aN9g040b3Ec640100Zc%az5u2Wc+31bj045+0#6scvbK7KaL4cc`7$9D3}a=8gc2b:9ucca%8Dc*cVcXbsafbT0+9q0(9sbJ9x6xcM0sc03-c;2$2W0Xc_dlc104c3b cVd7c~7Tdw3$5p0!do4y0H510S2B2$dN4.1A4:2E2H2C0(7z2B4/120H0+0-0/0x04.
A vous de jouer...⚓︎
Crédits⚓︎
Page écrite par Pierre Marquestaut
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)