Correction d'erreurs (1)
Avant d'exécuter le code, l'interpréteur vérifie que sa syntaxe est conforme. Si la syntaxe est conforme, il exécute le code. Dans le cas contraire il lève une exception.
Anatomie d'une exception
Commençons par générer un « bug » en exécutant le code ci-dessous :
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
Commençons par la fin. On trouve sur la dernière ligne deux informations :
- le type d'erreur (ici
SyntaxError) ; - un message expliquant plus précisément l'erreur.
Les lignes précédentes constituent le traceback. On y trouve :
- le numéro de la ligne où se situe l'erreur :
File "<exec>", line 1, - l'endroit de la ligne où se trouve l'erreur. (ici, on pointe le guillement qui n'a pas été refermé)
Corriger chaque programme pour qu'il puisse s'exécuter sans erreur.
Programme 1
###(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
.128013,n èOw-5e(3m=R0p)rhkuois;cEb/.S1vàtq_dg:éay24P+fl050M0j0J0Q0x0X0y0d0A0X0Q0y0y0n010J0x0q010406050y0v0m0m0Q0s0R040F0w0X0v0=0w0c0d020Q0m0q0z0d0o0j0 0s0K0v0j0y050D0|0~10120`0q041q1x051A0D1A1C1x0`0M0x0H0*0,0.0:0t0x0N0t0X1Q0t0J0^050#0C0X0j1L0-0/011P1R1T1R0J1Z1#1X0J0C0w0M121Y0s1y0J0t0*150y0q0Q0c0:0S011%1N010W0%0j0c1d0j1X2224291)2c1#2f0m2h040a0d0U0s0w0q0w0y0x181a0Z200s0s0j0A2C1q2j0c1y0D1~2O0J1|1{1}0M2l0:1T0c2e2z1X1I1K0+1(2Y0x2!0c1^1J1X0q2H1y2M2O2_0{231a2*2a2/0s0 0X0^0G2L2}0_2|2k2 1)31330^0S3724392M2X013e0Q34040l3i2N0`3l3c0:3o3q0T3t3k2}3m3z0^0i3C1z2@1q2(2R0M2V3m0A1^2r0Y1J1y2?0j2^383J3S0Z3!3b1M1)0u0^0Z0W3J3w3+0:0g0^0d3;3E3x3n0W0^0m0v0X0=0q1T0j3{3*2+010@040k482~3?3n0^0c0C2H361r3#3=4a4c0b3C3`4q304j4l0j3h4o3j3a4g4r0^0r0O3C060d4M4v3|4h0c0^2H0|430Q0J4u4E3m0w0^0n4Y4w1)0m0x0^0p4K4N4O492a3-040W0w0s4(4P4a4R040x4|4=1)0w3^500c524F300C4S240N474C2N4Z3}4c4e5h3)5a3d4y4m4f3m4c4I4/4:4N5j4Q4S1o420#4X5n4;5p0:4#044%5H5A4~5C4U5F594!0^0V5U3}4 4k2H4B2_4L5z4)0:4@2H0J0v0s585O5+4i044T5E4W4K1q3%3Z3K600D3N1q0J3P652T2P1@1_2R0Q1!623N1w5o3m2H0m0L0W0Q0u0j0L0t0l0^1i1k1m1o0d4J5n1z391x0B1a0,0c0N0Q5f2u0R1~190b0d1#0*100Q2J0e2H3`5 046B6#0d242/0c0A1$6T0M0P0C170d0M000v1a1!0w0A6@002-0y2S0v2J0x190y0E6D6i0f2D0w2B6@196~6T2S0w0v0H0j0s0d0I6S0Q0d2c2D6z1-2!0)1m0x200~2e6-0c0J0d237p1#0)0m0w0J0y0h0+0P0)056#0x3:0D6#6R7W3T040g1P1#5~7(7$6#4_4{7!7(0d7l6!7(3/7-3(0d0k2e2S1$0Q174T0E870r791D39630!0$0(04.
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
.128013,n èw-5e(3m=Rp)rhkêuois;cb/6.S1vtq_dg:Léay24Pfl050K0i0H0P0w0V0x0d0z0V0P0x0x0m010H0w0o010406050x0u0l0l0P0q0Q040E0v0V0u0:0v0c0d020P0l0o0y0d0n0i0}0q0I0u0i0x050B0`0|0~100^0o041o1v051y0B1y1A1v0^0K0w0G0(0*0,0.0r0w0L0r0V1O0r0H0?050Z0A0V0i1J0+0-011N1P1R1P0H1X1Z1V0H0A0v0K101W0q1w0H0r0(130x0o0P0c0.0R011#1L010U0#0i0c1b0i1V2022271%2a1Z2d0l2f040a0d0T0q0v0o0v0x0w16180X1~0q0q0i0z2A1o2h0c1w0B1|2M0H1`1_1{0K2j0.1R0c2c2x1V1G1I0)1$2W0w2Y0c1?1H1V0o2F1w2K2M2@0_21182(282-0q0}0V0?0F2J2{0@2`2i2}1%2 310?0R3522372K2V013c0P32040k3g2L0^3j3a0.3m3o0S3r3i2{3k3x0?0h3A3t3C3v3l0v303n0?0C3A1x2=1o2$2P0K2T3k0z1?2p0W1H1w2;0i2?363R3!0X3,391K1%0s0?0X0U3R3u3?0.0f0?0d3|3J3~3l0U0?0o140x0J0L0q220K433=2)010=040j4h2|450c0?0P4o3k4l0b3A423}4j4r040A4u3K4l0p0M3H060d4M4z444j3^040w3{1p364O4i2~4s4y384p4j0v0?020L0H0y4#4A4Z4D4F454l4J4V3h4L4N4}4$3k4R2F0H0u0q0c4/4P4;4t4`3s4~4:3@0?0i0$0i4?4j4^3H4}5d585f045254565b044X4%4;4E5w0^0B3/3+3S5G0B3V1o0H3X5L2R2N1=1@2P0P1Y5I3V1u3;5z1%2F0l0J0U0P0s0i0J0r0k0?1g1i1k1m0d4_2_1B371v0N000i2E0i540d0G0w2c0H0d0K0u0d5)2z0d5?0d1Z0d0x0v0u0x0g1Y0v0z0d0P2;0e0%055F045h0x0i4_6y690v6e0t2Q1!2+0X0c0H0O0b690O0z3n0O0D425{5Y5~6m0P0L1!0G62686g0V00170d150#0w6B6f0u0P6J0d1m210z5@2w630u2Y0d6L676`0w170D1x375J0Y0!0$04.
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
.128013,n w5e(]3m=0p)rhk[uoiscb/S1vt_dg:ay24P+fl050F0g0D0I0v0P0w0d0x0P0I0w0w0l010D0v0n010406050w0t0k0k0I0p0J040A0u0P0t0*0u0c050z0;0?0^0`0/0n04131a051d0z1d1f1a0/0F0v0C0Y0!0$0(0q0v0G0q0P1t0q0D0-050T0y0P0g1o0#0%011s1u1w1u0D1C1E1A0D0y0u0F0`1B0p1b0D0q0Y0}0w0n0I0c0(0K011G1q010O0V0g0c0I0k0g1A1(1*1/1I1=1E1^1`0-0a0d0M0p0u0n0u0w0v100c0d0R1$0p0p0g0x2f131}0c1b0z1!2s0D1Y1X1Z0F1 0(1w0c1@2c1A1l1n0Z1H2C0v2E0c1U1m1A0n2l1b2q2s2W0:1)2g2K1:2P0p0@0P0-0B2p2!0.2Z1~2$1I2(2*0-0K2.1*2:2q2B012^0I2+040j2|2r0/2 2?0(32340L372~2!303d0-0f3g1c2U132I2v0F2z300x1U1{1b3r1e3p2Y142/053w0R2V3i3b010r0-0R0O3n3a1p1I0e0-0d3R3K3T3c0O0-0w0u0?0g0E2N1l0x0g0w0E1)0v0p0w3Y2=3!010,040h3`2#3|0c0-1P0g0I0t41303~0o0H3g060d4h3X3S2L310-2l0;0P0T0D3g4j3Z4l0u0-0l4t2;424l0k0v0-0m4f4i4u3{4l3N040O0u0p4A4k2%0-0v4S4v1:0u3V042N4X4L1:3~0s4a3L4E4G4-3|3~0b4(4C1:4/042{3E2}4B4b0-4@4~2r4K4_1I4{3f543J4)1I3~0i4e5b4g4J4i503L44044o0t4q0I4s5b56304x044z5v5m434n3:5r4r4^5x0-0N5I5n450I1D47495b5C4l4+4;4l5o4W5T4T5e0-0i4I5l5$0(4N2l0D0t0p125B5,4m5p5F5s5u2W0/0z3H0g2s2T623q1m3s2v2x2t1T1V2v5P1E2s3r5 0R0T0V0w04.
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
.128013,n èw-5e(]3m=R0p)rhkê[uois;cb/.S1vàtqA_dg:éay24P7+fl050O0i0K0S0z0!0A0d0C0!0S0A0A0n010K0z0q010406050A0x0m0m0S0s0T040G0y0!0x0^0y0c0d020S0m0q0B0d0o0i120s0L0x0i0A050E0 1113150}0q041t1A051D0E1D1F1A0}0O0z0I0-0/0;0?0t0z0P0t0!1T0t0K0{050(0D0!0i1O0:0=011S1U1W1U0K1$1(1!0K0D0y0O151#0s1B0K0t0-180A0q0S0c0?0U011*1Q010Z0*0i0c1g0i1!25272c1,2f1(2i0m2k040a0d0W0s0y0q0y0A0z1b1d0$230s0s0i0C2F1t2m0c1B0E212R0K1 1~200O2o0?1W0c2h2C1!1L1N0.1+2#0z2%0c1{1M1!0q2K1B2P2R2|0~261d2-2d2=0s120!0{0H2O300|2 2n321,34360{0U3a273c2P2!013h0S37040l3l2Q0}3o3f0?3r3t0V3w3n303p3C0{0h3F1C2`1t2+2U0O2Y3p0C1{2u0#1M1B2_0i2{3b3M3V0$3%3e1P1,0u0{0$0Z3M3z3.0?0f0{0d3@3H3A3q0Z0{0A0y110i0N3#0m0z0i0s0A0N2h0^4c1s1u3(3^2.010`040j3~3-4n0c0{0c4s313_4o0{0r0Q3F060d4H3}4m330{2K0 0!0(0K3F4J3 4A0y0{0n4S3d4z4n4a0{0p4F4I4T4t2d3:040Z0y0s4Z4K3g0{0z4@4U4n0y3{042:4|4-3g0D4M270P0i4y3p4p4r4k3m4!3p4%04395f2Q5h404p0b534#4L044x5m044,5t1,4W040Y5s5i0z385b5p4C4E5x4G4+4I5o4A4v044N0x4P0S4R5x5z3p5C4Y5!5R4u4M1r5W4Q5F405C5E5)4^3B4`4*5Q5^014/2K0K0x0s5w2|5#405T5V5X5Z654I0}0E3*3$3N6h0E3Q1t0K3S6m2W2S1`1|2U0S1%6j3Q1z3,5A0?2K0m0N0Z0S0u470t0l0{1l1n1p1r0d5M2~1G3c1D6g5U585a6f3W5y0O0y2E0d0v2V1)0 1M0z0d2H262K0c210e0A1r0b23460d0x2%0d4;0c2M0z1c0F1C3c2+3p0S0O0m1c2E781d0f130c2:0P0{1z7e7g7i2F0g0^0K1@040W133V620,0O00720d1?0i0S0x0d6@0d2:1L0C6Q0y7O7Q0I3s0i7F7b6z0M1=4g7k0d0J0d73260,3V0c750O2K0d1(7P7D7W4d6=7I1d7L7N7}0s7R0c7T6}0d1p6;1a0*0z6|3}6X0s6Z1t6X7P7 0d0R0c100R2K871(0,7S0z7U0A0Q6e1D7d401.1V1X1Z3!3O6T2~6X5*5u1$5:4V4X8V4n4p0w5J4A5j3v5x8S1,5q8Y2d5j3E8*5}8-5@4}8/5H043k8=8_8,0{5r8^540?5j0X8$8Z0{0k4F8+5_5U5-6a8.5B8X936B015j4)5N9d5~0{4;4?9l3I5`9w5;50529z5S566Y0c59982d5d9J550{2r9M0?9L8~943q0{8U9T9m4p0r4D4S664A0C0H0{037R7P6^2Z0 0C8C2D0I1m4g7{6Q7Z1(7F0d0p6~0H6~0U6~8)2|5O4H9r689g5/9D4~9k65ac5,4Oafaj5}5=9i9e9X2~8?0{8#9Y9x519Q4B049b9q6#3+6i2R6l1I6V040%9|867E807H7J847X130d9~7#4d6~8d0d0s0R0C0x0q0e7`0K8q7.a:620-0t0S6P8r0!0R2t6_6=7OaV6R7%3Y2,4A8J1:1Y2^8O3(8*8R5}5T6b3b9(ah045(ao8 9RawaB8(aB8@bp9U8:bv91ar9n8{8}aubqaC92bx9m96bAaD9cbhal5.5YbC5%bC9obPbH4/9ubC5T64bk9r4 4`b(3mbl8T6vbN6Sbkb/1,9*9,7/9/2h9;0x9?1r9^9`b08yaY7!a00l6~0Va56~975N4+ak9fambTag2dbVcm4_cjbSbjb.b*0{5?bKazb-3x8n6$aI3P3Z6e6y3P0%0)0+04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)