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
.128013nimwOgyk02P;o, 5à+uRèal4t/sbrvceE.3)fh-:1S=é_dqp(050U0G0z0w0c0x0B0p0F0x0w0B0B0R010z0c0W010406050B0t0d0d0w0D0h040Q0n0x0t0=0n0b0p020w0d0W0m0p0u0G0 0D0V0t0G0B050A0|0~10120`0W041q1x051A0A1A1C1x0`0U0c0E0*0,0.0:0M0c0g0M0x1Q0M0z0^050#0C0x0G1L0-0/011P1R1T1R0z1Z1#1X0z0C0n0U121Y0D1y0z0M0*150B0W0w0b0:0k011%1N010L0%0G0b1d0G1X2224291)2c1#2f0d2h040a0p0l0D0n0W0n0B0c181a0Z200D0D0G0F2C1q2j0b1y0A1~2O0z1|1{1}0U2l0:1T0b2e2z1X1I1K0+1(2Y0c2!0b1^1J1X0W2H1y2M2O2_0{231a2*2a2/0D0 0x0^0P2L2}0_2|2k2 1)31330^0k3724392M2X013e0w34040J3i2N0`3l3c0:3o3q0y3t3k2}3m3z0^0q3C1z2@1q2(2R0U2V3m0F1^2r0Y1J1y2?0G2^383J3S0Z3!3b1M1)0i0^0Z0L3J3w3+0:0e0^0p3;3E3x3n0L0^0d0t0x0=0W1T0G3{3*2+010@040X482~3?3n0^0b0C2H361r3#3=4a4c0o3C3`4q304j4l0G3h4o3j3a4g4r0^0K0O3C060p4M4v3|4h0b0^2H0|430w0z4u4E3m0n0^0R4Y4w1)0d0c0^0j4K4N4O492a3-040L0n0D4(4P4a4R040c4|4=1)0n3^500b524F300C4S240g474C2N4Z3}4c4e5h3)5a3d4y4m4f3m4c4I4/4:4N5j4Q4S1o420#4X5n4;5p0:4#044%5H5A4~5C4U5F594!0^0s5U3}4 4k2H4B2_4L5z4)0:4@2H0z0t0D585O5+4i044T5E4W4K1q3%3Z3K600A3N1q0z3P652T2P1@1_2R0w1!623N1w5o3m2H0d0T0L0w0i0G0T0M0J0^1i1k1m1o0p4J5n1z391x0H1a0,0b0g0w5f2u0h1~190o0p1#0*100w2J0v2H3`5 046B6#0p242/0b0F1$6T0U0S0C170p0U000t1a1!0n0F6@002-0B2S0t2J0c190B0I6D6i0f2D0n2B6@196~6T2S0n0t0E0G0D0p0r6S0w0p2c2D6z1-2!0)1m0c200~2e6-0b0z0p237p1#0)0d0n0z0B0N0+0S0)056#0c3:0A6#6R7W3T040e1P1#5~7(7$6#4_4{7!7(0p7l6!7(3/7-3(0p0X2e2S1$0w174T0I870K791D39630!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
.128013nLimwgyk2P;o, 56uRèal4t/sbrvce.3)fh-:1S=êé_dqp(050S0E0x0u0d0v0z0o0D0v0u0z0z0O010x0d0U010406050z0r0e0e0u0B0h040N0m0v0r0:0m0b0o020u0e0U0l0o0s0E0}0B0T0r0E0z050y0`0|0~100^0U041o1v051y0y1y1A1v0^0S0d0C0(0*0,0.0J0d0g0J0v1O0J0x0?050Z0A0v0E1J0+0-011N1P1R1P0x1X1Z1V0x0A0m0S101W0B1w0x0J0(130z0U0u0b0.0j011#1L010I0#0E0b1b0E1V2022271%2a1Z2d0e2f040a0o0k0B0m0U0m0z0d16180X1~0B0B0E0D2A1o2h0b1w0y1|2M0x1`1_1{0S2j0.1R0b2c2x1V1G1I0)1$2W0d2Y0b1?1H1V0U2F1w2K2M2@0_21182(282-0B0}0v0?0M2J2{0@2`2i2}1%2 310?0j3522372K2V013c0u32040G3g2L0^3j3a0.3m3o0w3r3i2{3k3x0?0p3A3t3C3v3l0m303n0?0q3A1x2=1o2$2P0S2T3k0D1?2p0W1H1w2;0E2?363R3!0X3,391K1%0i0?0X0I3R3u3?0.0f0?0o3|3J3~3l0I0?0U140z0R0g0B220S433=2)010=040V4h2|450b0?0u4o3k4l0n3A423}4j4r040A4u3K4l0H0L3H060o4M4z444j3^040d3{1p364O4i2~4s4y384p4j0m0?020g0x0l4#4A4Z4D4F454l4J4V3h4L4N4}4$3k4R2F0x0r0B0b4/4P4;4t4`3s4~4:3@0?0E0$0E4?4j4^3H4}5d585f045254565b044X4%4;4E5w0^0y3/3+3S5G0y3V1o0x3X5L2R2N1=1@2P0u1Y5I3V1u3;5z1%2F0e0R0I0u0i0E0R0J0G0?1g1i1k1m0o4_2_1B371v0c000E2E0E540o0C0d2c0x0o0S0r0o5)2z0o5?0o1Z0o0z0m0r0z0K1Y0m0D0o0u2;0t0%055F045h0z0E4_6y690m6e0P2Q1!2+0X0b0x0Q0n690Q0D3n0Q0F425{5Y5~6m0u0g1!0C62686g0v00170o150#0d6B6f0r0u6J0o1m210D5@2w630r2Y0o6L676`0d170F1x375J0Y0!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
.128013nimwgyk02Po, 5+]ual4t/sbr[vce3)fh:1S=_dp(050N0D0v0s0c0t0x0n0C0t0s0x0x0L010v0c0O010406050x0r0d0d0s0z0g040K0l0t0r0*0l0b050w0;0?0^0`0/0O04131a051d0w1d1f1a0/0N0c0B0Y0!0$0(0H0c0f0H0t1t0H0v0-050T0y0t0D1o0#0%011s1u1w1u0v1C1E1A0v0y0l0N0`1B0z1b0v0H0Y0}0x0O0s0b0(0j011G1q010G0V0D0b0s0d0D1A1(1*1/1I1=1E1^1`0-0a0n0k0z0l0O0l0x0c100b0n0R1$0z0z0D0C2f131}0b1b0w1!2s0v1Y1X1Z0N1 0(1w0b1@2c1A1l1n0Z1H2C0c2E0b1U1m1A0O2l1b2q2s2W0:1)2g2K1:2P0z0@0t0-0J2p2!0.2Z1~2$1I2(2*0-0j2.1*2:2q2B012^0s2+040E2|2r0/2 2?0(32340u372~2!303d0-0o3g1c2U132I2v0N2z300C1U1{1b3r1e3p2Y142/053w0R2V3i3b010h0-0R0G3n3a1p1I0e0-0n3R3K3T3c0G0-0x0l0?0D0M2N1l0C0D0x0M1)0c0z0x3Y2=3!010,040P3`2#3|0b0-1P0D0s0r41303~0F0I3g060n4h3X3S2L310-2l0;0t0T0v3g4j3Z4l0l0-0L4t2;424l0d0c0-0i4f4i4u3{4l3N040G0l0z4A4k2%0-0c4S4v1:0l3V042N4X4L1:3~0A4a3L4E4G4-3|3~0m4(4C1:4/042{3E2}4B4b0-4@4~2r4K4_1I4{3f543J4)1I3~0q4e5b4g4J4i503L44044o0r4q0s4s5b56304x044z5v5m434n3:5r4r4^5x0-0p5I5n450s1D47495b5C4l4+4;4l5o4W5T4T5e0-0q4I5l5$0(4N2l0v0r0z125B5,4m5p5F5s5u2W0/0w3H0D2s2T623q1m3s2v2x2t1T1V2v5P1E2s3r5 0R0T0V0x04.
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
.128013nimwgyk02P;o, 5à+]uRèal4t/sbr[vce.3)Afh-:1S=êé7_dqp(050X0H0z0w0c0x0B0o0G0x0w0B0B0S010z0c0Z010406050B0t0d0d0w0D0g040R0m0x0t0^0m0b0o020w0d0Z0l0o0u0H120D0Y0t0H0B050A0 1113150}0Z041t1A051D0A1D1F1A0}0X0c0F0-0/0;0?0N0c0f0N0x1T0N0z0{050(0C0x0H1O0:0=011S1U1W1U0z1$1(1!0z0C0m0X151#0D1B0z0N0-180B0Z0w0b0?0j011*1Q010M0*0H0b1g0H1!25272c1,2f1(2i0d2k040a0o0k0D0m0Z0m0B0c1b1d0$230D0D0H0G2F1t2m0b1B0A212R0z1 1~200X2o0?1W0b2h2C1!1L1N0.1+2#0c2%0b1{1M1!0Z2K1B2P2R2|0~261d2-2d2=0D120x0{0Q2O300|2 2n321,34360{0j3a273c2P2!013h0w37040J3l2Q0}3o3f0?3r3t0y3w3n303p3C0{0p3F1C2`1t2+2U0X2Y3p0G1{2u0#1M1B2_0H2{3b3M3V0$3%3e1P1,0h0{0$0M3M3z3.0?0e0{0o3@3H3A3q0M0{0B0m110H0W3#0d0c0H0D0B0W2h0^4c1s1u3(3^2.010`040!3~3-4n0b0{0b4s313_4o0{0K0P3F060o4H3}4m330{2K0 0x0(0z3F4J3 4A0m0{0S4S3d4z4n4a0{0i4F4I4T4t2d3:040M0m0D4Z4K3g0{0c4@4U4n0m3{042:4|4-3g0C4M270f0H4y3p4p4r4k3m4!3p4%04395f2Q5h404p0n534#4L044x5m044,5t1,4W040r5s5i0c385b5p4C4E5x4G4+4I5o4A4v044N0t4P0w4R5x5z3p5C4Y5!5R4u4M1r5W4Q5F405C5E5)4^3B4`4*5Q5^014/2K0z0t0D5w2|5#405T5V5X5Z654I0}0A3*3$3N6h0A3Q1t0z3S6m2W2S1`1|2U0w1%6j3Q1z3,5A0?2K0d0W0M0w0h470N0J0{1l1n1p1r0o5M2~1G3c1D6g5U585a6f3W5y0X0m2E0o0T2V1)0 1M0c0o2H262K0b210v0B1r0n23460o0t2%0o4;0b2M0c1c0I1C3c2+3p0w0X0d1c2E781d0e130b2:0f0{1z7e7g7i2F0O0^0z1@040k133V620,0X00720o1?0H0w0t0o6@0o2:1L0G6Q0m7O7Q0F3s0H7F7b6z0L1=4g7k0o0q0o73260,3V0b750X2K0o1(7P7D7W4d6=7I1d7L7N7}0D7R0b7T6}0o1p6;1a0*0c6|3}6X0D6Z1t6X7P7 0o0U0b100U2K871(0,7S0c7U0B0P6e1D7d401.1V1X1Z3!3O6T2~6X5*5u1$5:4V4X8V4n4p0E5J4A5j3v5x8S1,5q8Y2d5j3E8*5}8-5@4}8/5H043k8=8_8,0{5r8^540?5j0V8$8Z0{0s4F8+5_5U5-6a8.5B8X936B015j4)5N9d5~0{4;4?9l3I5`9w5;50529z5S566Y0b59982d5d9J550{2r9M0?9L8~943q0{8U9T9m4p0K4D4S664A0G0Q0{037R7P6^2Z0 0G8C2D0F1m4g7{6Q7Z1(7F0o0i6~0Q6~0j6~8)2|5O4H9r689g5/9D4~9k65ac5,4Oafaj5}5=9i9e9X2~8?0{8#9Y9x519Q4B049b9q6#3+6i2R6l1I6V040%9|867E807H7J847X130o9~7#4d6~8d0o0D0U0G0t0Z0v7`0z8q7.a:620-0N0w6P8r0x0U2t6_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;0t9?1r9^9`b08yaY7!a00J6~0ya56~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)