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 :

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

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 # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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
Évaluations restantes : 10/10

.128013s3Oo_;èbcdufvg/0lyàq napS.r1-meh,(P2=4:+twki5RE)é050k0F0P0x0S0r0b0v0j0r0x0b0b0L010P0S0y010406050b0l0E0E0x0B0s040z0e0r0l0=0e0w0v020x0E0y0g0v0U0F0 0B0u0l0F0b050p0|0~10120`0y041q1x051A0p1A1C1x0`0k0S0n0*0,0.0:0G0S0o0G0r1Q0G0P0^050#0i0r0F1L0-0/011P1R1T1R0P1Z1#1X0P0i0e0k121Y0B1y0P0G0*150b0y0x0w0:0K011%1N010m0%0F0w1d0F1X2224291)2c1#2f0E2h040a0v0J0B0e0y0e0b0S181a0Z200B0B0F0j2C1q2j0w1y0p1~2O0P1|1{1}0k2l0:1T0w2e2z1X1I1K0+1(2Y0S2!0w1^1J1X0y2H1y2M2O2_0{231a2*2a2/0B0 0r0^0C2L2}0_2|2k2 1)31330^0K3724392M2X013e0x34040c3i2N0`3l3c0:3o3q0M3t3k2}3m3z0^0T3C1z2@1q2(2R0k2V3m0j1^2r0Y1J1y2?0F2^383J3S0Z3!3b1M1)0R0^0Z0m3J3w3+0:0Q0^0v3;3E3x3n0m0^0E0l0r0=0y1T0F3{3*2+010@040I482~3?3n0^0w0i2H361r3#3=4a4c0H3C3`4q304j4l0F3h4o3j3a4g4r0^0W0N3C060v4M4v3|4h0w0^2H0|430x0P4u4E3m0e0^0L4Y4w1)0E0S0^0q4K4N4O492a3-040m0e0B4(4P4a4R040S4|4=1)0e3^500w524F300i4S240o474C2N4Z3}4c4e5h3)5a3d4y4m4f3m4c4I4/4:4N5j4Q4S1o420#4X5n4;5p0:4#044%5H5A4~5C4U5F594!0^0O5U3}4 4k2H4B2_4L5z4)0:4@2H0P0l0B585O5+4i044T5E4W4K1q3%3Z3K600p3N1q0P3P652T2P1@1_2R0x1!623N1w5o3m2H0E0f0m0x0R0F0f0G0c0^1i1k1m1o0v4J5n1z391x0V1a0,0w0o0x5f2u0s1~190H0v1#0*100x2J0h2H3`5 046B6#0v242/0w0j1$6T0k0X0i170v0k000l1a1!0e0j6@002-0b2S0l2J0S190b0A6D6i0d2D0e2B6@196~6T2S0e0l0n0F0B0v0t6S0x0v2c2D6z1-2!0)1m0S200~2e6-0w0P0v237p1#0)0E0e0P0b0D0+0X0)056#0S3:0p6#6R7W3T040Q1P1#5~7(7$6#4_4{7!7(0v7l6!7(3/7-3(0v0I2e2S1$0x174T0A870W791D39630!0$0(04.
Programme 2

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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
Évaluations restantes : 10/10

.128013s3o_;èbcdufvg/lyq naêpS.r1L-meh,(P2=4:twki5R)é6050j0E0N0u0Q0p0b0s0i0p0u0b0b0K010N0Q0w010406050b0k0D0D0u0z0q040x0d0p0k0:0d0t0s020u0D0w0f0s0S0E0}0z0r0k0E0b050o0`0|0~100^0w041o1v051y0o1y1A1v0^0j0Q0m0(0*0,0.0F0Q0n0F0p1O0F0N0?050Z0h0p0E1J0+0-011N1P1R1P0N1X1Z1V0N0h0d0j101W0z1w0N0F0(130b0w0u0t0.0J011#1L010l0#0E0t1b0E1V2022271%2a1Z2d0D2f040a0s0I0z0d0w0d0b0Q16180X1~0z0z0E0i2A1o2h0t1w0o1|2M0N1`1_1{0j2j0.1R0t2c2x1V1G1I0)1$2W0Q2Y0t1?1H1V0w2F1w2K2M2@0_21182(282-0z0}0p0?0A2J2{0@2`2i2}1%2 310?0J3522372K2V013c0u32040c3g2L0^3j3a0.3m3o0L3r3i2{3k3x0?0R3A3t3C3v3l0d303n0?0V3A1x2=1o2$2P0j2T3k0i1?2p0W1H1w2;0E2?363R3!0X3,391K1%0P0?0X0l3R3u3?0.0O0?0s3|3J3~3l0l0?0w140b0e0n0z220j433=2)010=040H4h2|450t0?0u4o3k4l0G3A423}4j4r040h4u3K4l0T0M3H060s4M4z444j3^040Q3{1p364O4i2~4s4y384p4j0d0?020n0N0f4#4A4Z4D4F454l4J4V3h4L4N4}4$3k4R2F0N0k0z0t4/4P4;4t4`3s4~4:3@0?0E0$0E4?4j4^3H4}5d585f045254565b044X4%4;4E5w0^0o3/3+3S5G0o3V1o0N3X5L2R2N1=1@2P0u1Y5I3V1u3;5z1%2F0D0e0l0u0P0E0e0F0c0?1g1i1k1m0s4_2_1B371v0B000E2E0E540s0m0Q2c0N0s0j0k0s5)2z0s5?0s1Z0s0b0d0k0b0C1Y0d0i0s0u2;0g0%055F045h0b0E4_6y690d6e0v2Q1!2+0X0t0N0U0G690U0i3n0U0y425{5Y5~6m0u0n1!0m62686g0p00170s150#0Q6B6f0k0u6J0s1m210i5@2w630k2Y0s6L676`0Q170y1x375J0Y0!0$04.
Programme 3

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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
Évaluations restantes : 10/10

.128013s3o_bcdufvg/0ly napSr1me,(P2=4:+twki][5h)050h0y0H0s0K0o0b0q0g0o0s0b0b0D010H0K0t010406050b0i0x0x0s0v0p040u0d0o0i0*0d0r050m0;0?0^0`0/0t04131a051d0m1d1f1a0/0h0K0k0Y0!0$0(0O0K0l0O0o1t0O0H0-050T0f0o0y1o0#0%011s1u1w1u0H1C1E1A0H0f0d0h0`1B0v1b0H0O0Y0}0b0t0s0r0(0C011G1q010j0V0y0r0s0x0y1A1(1*1/1I1=1E1^1`0-0a0q0B0v0d0t0d0b0K100r0q0R1$0v0v0y0g2f131}0r1b0m1!2s0H1Y1X1Z0h1 0(1w0r1@2c1A1l1n0Z1H2C0K2E0r1U1m1A0t2l1b2q2s2W0:1)2g2K1:2P0v0@0o0-0w2p2!0.2Z1~2$1I2(2*0-0C2.1*2:2q2B012^0s2+040c2|2r0/2 2?0(32340E372~2!303d0-0N3g1c2U132I2v0h2z300g1U1{1b3r1e3p2Y142/053w0R2V3i3b010J0-0R0j3n3a1p1I0I0-0q3R3K3T3c0j0-0b0d0?0y0e2N1l0g0y0b0e1)0K0v0b3Y2=3!010,040A3`2#3|0r0-1P0y0s0i41303~0P0F3g060q4h3X3S2L310-2l0;0o0T0H3g4j3Z4l0d0-0D4t2;424l0x0K0-0n4f4i4u3{4l3N040j0d0v4A4k2%0-0K4S4v1:0d3V042N4X4L1:3~0M4a3L4E4G4-3|3~0z4(4C1:4/042{3E2}4B4b0-4@4~2r4K4_1I4{3f543J4)1I3~0L4e5b4g4J4i503L44044o0i4q0s4s5b56304x044z5v5m434n3:5r4r4^5x0-0G5I5n450s1D47495b5C4l4+4;4l5o4W5T4T5e0-0L4I5l5$0(4N2l0H0i0v125B5,4m5p5F5s5u2W0/0m3H0y2s2T623q1m3s2v2x2t1T1V2v5P1E2s3r5 0R0T0V0b04.
Programme 4

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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
Évaluations restantes : 10/10

.128013s3o_;èbcdufvg/0lyàq nA7aêpS.r1-meh,(P2=4:+twki][5R)é050j0H0R0y0U0q0b0u0i0q0y0b0b0N010R0U0A010406050b0k0G0G0y0D0r040B0d0q0k0^0d0v0u020y0G0A0f0u0Y0H120D0t0k0H0b050o0 1113150}0A041t1A051D0o1D1F1A0}0j0U0m0-0/0;0?0I0U0n0I0q1T0I0R0{050(0h0q0H1O0:0=011S1U1W1U0R1$1(1!0R0h0d0j151#0D1B0R0I0-180b0A0y0v0?0M011*1Q010l0*0H0v1g0H1!25272c1,2f1(2i0G2k040a0u0L0D0d0A0d0b0U1b1d0$230D0D0H0i2F1t2m0v1B0o212R0R1 1~200j2o0?1W0v2h2C1!1L1N0.1+2#0U2%0v1{1M1!0A2K1B2P2R2|0~261d2-2d2=0D120q0{0E2O300|2 2n321,34360{0M3a273c2P2!013h0y37040c3l2Q0}3o3f0?3r3t0O3w3n303p3C0{0X3F1C2`1t2+2U0j2Y3p0i1{2u0#1M1B2_0H2{3b3M3V0$3%3e1P1,0T0{0$0l3M3z3.0?0S0{0u3@3H3A3q0l0{0b0d110H0e3#0G0U0H0D0b0e2h0^4c1s1u3(3^2.010`040K3~3-4n0v0{0v4s313_4o0{0Z0P3F060u4H3}4m330{2K0 0q0(0R3F4J3 4A0d0{0N4S3d4z4n4a0{0p4F4I4T4t2d3:040l0d0D4Z4K3g0{0U4@4U4n0d3{042:4|4-3g0h4M270n0H4y3p4p4r4k3m4!3p4%04395f2Q5h404p0J534#4L044x5m044,5t1,4W040Q5s5i0U385b5p4C4E5x4G4+4I5o4A4v044N0k4P0y4R5x5z3p5C4Y5!5R4u4M1r5W4Q5F405C5E5)4^3B4`4*5Q5^014/2K0R0k0D5w2|5#405T5V5X5Z654I0}0o3*3$3N6h0o3Q1t0R3S6m2W2S1`1|2U0y1%6j3Q1z3,5A0?2K0G0e0l0y0T470I0c0{1l1n1p1r0u5M2~1G3c1D6g5U585a6f3W5y0j0d2E0u0z2V1)0 1M0U0u2H262K0v210g0b1r0J23460u0k2%0u4;0v2M0U1c0C1C3c2+3p0y0j0G1c2E781d0S130v2:0n0{1z7e7g7i2F0F0^0R1@040L133V620,0j00720u1?0H0y0k0u6@0u2:1L0i6Q0d7O7Q0m3s0H7F7b6z0w1=4g7k0u0s0u73260,3V0v750j2K0u1(7P7D7W4d6=7I1d7L7N7}0D7R0v7T6}0u1p6;1a0*0U6|3}6X0D6Z1t6X7P7 0u0!0v100!2K871(0,7S0U7U0b0P6e1D7d401.1V1X1Z3!3O6T2~6X5*5u1$5:4V4X8V4n4p0W5J4A5j3v5x8S1,5q8Y2d5j3E8*5}8-5@4}8/5H043k8=8_8,0{5r8^540?5j0x8$8Z0{0V4F8+5_5U5-6a8.5B8X936B015j4)5N9d5~0{4;4?9l3I5`9w5;50529z5S566Y0v59982d5d9J550{2r9M0?9L8~943q0{8U9T9m4p0Z4D4S664A0i0E0{037R7P6^2Z0 0i8C2D0m1m4g7{6Q7Z1(7F0u0p6~0E6~0M6~8)2|5O4H9r689g5/9D4~9k65ac5,4Oafaj5}5=9i9e9X2~8?0{8#9Y9x519Q4B049b9q6#3+6i2R6l1I6V040%9|867E807H7J847X130u9~7#4d6~8d0u0D0!0i0k0A0g7`0R8q7.a:620-0I0y6P8r0q0!2t6_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;0k9?1r9^9`b08yaY7!a00c6~0Oa56~975N4+ak9fambTag2dbVcm4_cjbSbjb.b*0{5?bKazb-3x8n6$aI3P3Z6e6y3P0%0)0+04.