TP structures conditionnelles et boucles

QCM Python : Les boucles

Les boucles for et while en Python. ⚠️ Le paramètre de fin de la fonction range() est toujours exclu. Exemple range(1,4) génère les valeurs 1, 2 et 3.

  1. Que vaut la variable somme après l'exécution du code suivant ?
    1
    2
    3
    somme = 0
    for i in range(1, 5):
        somme += i
    

    • 10

    • 15

    • 5

    • 4

    Remarque .itad,n.5bc14L fujp)eloxrsĂ (/mg050r040m0c0n0i0v0p0j0u0t0n050j0v0d0t040o0v0x050B0S0U040n0c0q0L0b0P0O0y0n0t0f0b0a0t0x0:0U0n0k0n0z0n0l0 0Q0$0V0y0v0C0C0t0!150(0A0j0c0x140T0V0x0c0f0D0t0A0k0e0n0h0s1c1k0(0t0w0N0p0b1u0s0g0!0F.
  2. Laquelle de ces boucles while ne termine pas (boucle infinie) ?
    # A
    x = 3
    while x < 10:
        x += 1
    
    # B
    y = 10
    while y > 0:
        y -= 2
    
    # C
    z = 1
    while z < 5:
        z *= 2
    
    # D
    t = 0
    while t < 5:
        print(t)
    

    • A

    • B

    • C

    • D

    Remarque .ita;dv,nD.5bcL fujpelohrs/m050s040n0c0o0l0v0q0m0u0t0o0i0o0c0p0p0a0m0w0M050m0v0e0t040b050z0Y0!040o0y0c0h0y0o0r0c0A0c0a0;0A0Z0a0S0t0x0-0F0f0c0L0q0x0g0o0e0v0h0m0o0X0Z0#0b0o020u0b0d0o0k0(0*0#0o0t0y1j0b0I0r0I0x0;0f0x0_0j0(0C.
  3. Combien de fois la boucle suivante s'exécute-t-elle ?
    for i in range(100, 1, -3):
        pass
    

    • 32

    • 34

    • 33

    • 35

    Remarque .8217Cit3a;dvn.ébc14qL ujp0)elorsà(/mg050v040r0f0s0m0A0t0n0z0y0s0n0A0G0G0y0j0n0T0D0s0o0w0w0s0y0d0s0h0l0n0B0l0Y0j0d0T0h0T0e0s0u0t0C0q0t0a0%0f0d0`0c0j0h0B0T0t0j0T0i0f0S0t0B0s020H0d0g0(0k0s0b0y0z0M0h0A0j1g0s0e0~1i1k0B0C0s0E0|0(0*0s0%0p0s1a0R110x0k050F0J.

Une boucle for pour calculer une la somme 1 + 2 + ... + 99 + 100⚓︎

Après les tours de boucle, la variable somme doit valoir 1 + 2 + 3 +... + 100

###(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 : 5/5
.128013it3adv,n2Séwbcy+14: f-up0I)_elohrP=sà(/mgk050f0D0c0e0b0E0K0u0o0E0e0K0K0J010c0b0y010406050K0x0O0O0e0H0p040k0F0E0x0+0F0i050N0=0@0_0{0:0y04051b141e0N1b0:0f0b0g0Z0#0%0)0#0i0P0x0e0P0D0w0y0p0c0G120u0G0b0P0G0E1G0G0c0.050U0n0E0D1n0$0(011F1H1J1H0c1P1R1N0c0H1c1B0Z0~0K0y0e0i0)0j011T1p010v0W0D0i0e0O0D1N1/1;1_1V1|1R1 210.0a0u0I0H0F0y0F0K0b110i0u0S1-0H0H0D0o2m14240i1c0N1B2z1)1+1*1O0f261q0b0i1~2j1N1k1m0!1U2J2L0i0F2P1N0y2s1c2x2z2$0;1:2n2R1`2V0H0^0E1N0e1E2s0v0)030C0C0o2W0D1J2U0F0w0d0w0r0.0r140e2%2*0/2)252,1V2.2:2=2@0D2_012{2}2 312M340w1@040j3a3c1;3e2x2I013j0e2;1c2?0G2^2`2|2~0S3t2V3v0d0.0d3A2w3d0:3E3h0)3H3J053L3N3p3P3s2K3u350s0.0s3Y153d1f2!142P2C0f1+2H3%013Q221c401d3~2(3{3C05472#2*0u0b0f0)2|2x3v373K4k4m013/3R3;3T35370u2a0D4n3r4x324q1N0N3b3f2+1o3i0.0K0F0@0D3Z3C0u4N3F0F0.0J4W2y4Y3$4P0)0O0b0.0z4(044*4j450o4r030u0A0i2l0b3I0b0K0e2m2o1S0#0u0g0_511Q1S4S4U4=0:4e2y4Z4l4F4p353x3+4t4F473S335q1^4D5u3:4I5y2z3b5j2(3E5n4v0C5p343l5K4w304y5x5O4C204E5L5v5T3U4K4M4+2S010Q0.0v0F0H4=4@3g4,3G0.0b5;4Z450F0m5_135k4?5|5@0i0n0.0H1;1w4=645*0-040M6c5)1`4.386i4^5@6f0h6n5?5*6l040r0z39626d1`6f0B0t5{6j1V4`0.4|0b5a2?2Z1~0f2s0u1R0Y5b1R0x0H0Y2p0r0u0L0u6x0z4k0i0!0x0K5i6s2n5Q5M2*3v3@4s6@5!5D0w3@5W215B4H3=705%4?0u7a6B4Q045g216G6o5*4#040q4%625=4O5*0i5_7h6t1`6J046L6-0H0l210i0U562p6M2p595b0H5d1R0u7f4V625H3|0N4h3}0D2z4a2A42142D7%0e5e7Z1l3e0N0S0U0W0K04.

Une boucle for pour calculer factoriel n⚓︎

Après les tours de boucle, la variable factorielle doit valoir n!

###(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 : 5/5
.128013it3adv,n2S5wb*cy!+14: f-up0I)_elohrP=sĂ 6(/mgk050f0F0c0e0b0G0M0w0p0G0e0M0M0L010c0b0A010406050M0z0R0R0e0J0q040k0H0G0z0.0H0i050Q0^0`0|0~0?0A04051e171h0Q1e0?0f0b0g0$0(0*0,0(0i0S0z0e0S0F0y0A0q0c0I150w0I0b0S0I0G1J0I0c0;050X0n0G0F1q0)0+011I1K1M1K0c1S1U1Q0c0J1f1E0$110M0A0e0i0,0j011W1s010x0Z0F0i0e0R0F1Q1=1@1|1Y1 1U22240;0a0w0K0J0H0A0H0M0b140i0w0V1:0J0J0F0p2p17270i1f0Q1E2C1,1.1-1R0f291t0b0i212m1Q1n1p0%1X2M2O0i0H2S1Q0A2v1f2A2C2)0@1?2q2U1}2Y0J0{0G1Q0e1H2v0x0,030E0E0p2Z0F1M2X0H0y0u0y0t0;0t170e2*2-0=2,282/1Y2;2?2^2`0F2|012~3032342P370y1`040j3d3f1@3h2A2L013m0e2@1f2_0I2{2}2 310V3w2Y3y0d0;0d3D2z3g0?3H3k0,3K3M053O3Q3s3S3v2N3x380u0;0u3#183%3i2.1r3l0H2=3L3o3P3q3R3u3U3@3W380l0;0l3}2)3(2-3I3,473:3t3T334d36380O0;0O4j3g1i2%172S2F0f1.2K3*014s2R1o1f2$0F2(4B3~3F054s4S280b0f0,2 2A3y3a3N0w4!4$4b4t354)1{2d0F4.4s3V4v391Q0Q3e404n0;164U2B0w514K0H0;0L3$3F573)420,0R0b3b0B5d56585h4L4*030w0C0i2o0b3L0b0M0e2p2r1V0(0w0g0|5y1T1V2q0N0w5G5I1U0z0J2r150c0w1G0g0F130$3L0p0z1U5U0i0r5n3h554Y2q4-014%2-3y3A3.4,4#5^4/4{5{4?234^604`4u632C3e0?5;515@5_1@3X3o6g6169383Y0w4@4_3?4;6o4~505g2V3J0;0x0e2x440b331U5/5f4m595b6J5p6z5j3b6O6y1}0p5s5u5w0.5z5B2y5;6d2+3H6l4(3_6k5 3=4c6u3764246s6=3^6@6b5:6*4m6,5`4f6/6`4:6|4g6q657662746~6P1}0T6B446T6L5q0i0;0b7l3j5q0H0m7p542)6K7s6z0i0n0;0J1@1z5/7g1Y0:040P7I6U1Y6R3B7O7m6z7L0h7r417B537Y3I5a040s7$4K7R3c6e7P0,7L0D0v7+5q6W0;5t2l5T5P0F0#210.0F0J0#2s0j0w5O7x3 7/716:0E6-0y4x4+6l686?4x7a6_676t6|8j3D0w8w7z7Z2:6B6D0c6F6H0F7^6z7(0o5c5;8y52047q6(7I0Q4X4C4R4E4O170c4H8Z2I2D0e5L2C4F6d0V0X0Z0M04.

Une boucle pour dessiner un triangle en ASCII art.⚓︎

Le but de cet exercice est de dessiner le triangle suivant :

Text Only
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************

Astuces

  • "bonjour " + "vous" concatène les deux chaĂ®nes ce qui donne "bonjour vous"

  • "*" * 5 donne la chaĂ®ne de caractères "*****"

Ainsi " " * 3 + "*" * 4 donne " ****"

###(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

Compter les e dans un phrase.⚓︎

Une boucle peut permettre de compter le nombre d'occurrences de e.

###(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 : 5/5
.128013Cit3a;dv,nîT2.S5éwbcy+14qA f-up0:_9eklohrP=s6/mg7050h0K0d0f0c0M0S0B0u0M0f0S0S0R010d0c0F010406050S0E0V0V0f0P0v040p0N0M0E0=0N0k050U0|0~10120`0F04051i1b1l0U1i0`0h0c0i0*0,0.0:0,0k0W0E0f0W0K0D0F0v0d0O190B0O0c0W0O0M1N0O0d0^050#0t0M0K1u0-0/011M1O1Q1O0d1W1Y1U0d0P1j1I0*150S0F0f0k0:0n011!1w010C0%0K0k0f0V0K1U1_1{201$231Y26280^0a0B0Q0P0N0F0N0S0c180k0B0Z1@0P0P0K0u2t1b2b0k1j0U1I2G1:1=1;1V0h2d1x0c0k252q1U1r1t0+1#2Q2S0k0N2W1U0F2z1j2E2G2-0{1`2u2Y212$0P0 0M1U0f1L2z0C0:030I0I0u2%0K1Q2#0N0D0T0D0x0^0x1b0f2.2;0_2:2c2?1$2^2`2|2~0K3001323436382T3b0D1~040n3h3j1{3l2E2P013q0f2{1j2}0O2 3133350Z3A2$3C0e0^0e3H2D3k0`3L3o0:3O3Q053S3U3w3W3z2R3B3c0y0^0y3)1c3+3m2=1v3p0N2_3P3s3T3u3V3y3Y3{3!3c0q0^0q412-3,2;3M3:4b3@3x3X374h3a3c0T0^0T4n433-463/483r3R3t3v4v3`393C0X0^0X4E3J1m2+1b2W2J0h1=2O3.014w2V1s1j2*0K2,3k3*4W4w4;2c0c0h0:332E3C3e4L4{4}4f4x4Q3c3e0B2h0K544w3Z4z3d1U0U3i444r0^0F3T0-0K4?2F0B5l4)0N0^0R5s045u4G2Z010S3E020z0E0N0d0g0m1J0S1Z0s1J0*4`0 0W3{0B1{1H1M1z0j5U2=2z0f0d1Z1I1Z0c0V2p0.0c1X0K0o5I5K5M5A0B5C4q4)0u51030B0b2s5,0c0N5A0`424W3L53014~2;3C3E3=0B6i3_4g573D1 5b5d4P3|6u2G5k5D2@0^1a6f5t5v4H3N0^0Z5 6J5E0k0^0A1y6O6D3p0^0m0E0P2R0W6d5A5l6q0I4 3c3$524|6j555f3#6v275c6=5e4y6^6B4_456Q0^355=5-6!6V626K5x045z6H5B6P210V0c0^0G6(7f6*6;6k1{3C3~6:6x6s6z3~5a6`7w567y5i3i6e2/6h7q6,6l4j3s6+6}6t4k7A287C6@7N707h1$0L0^0C48793n6K6R040M7)72210N0s0^2R7/5m045o0P5q6)6W0:0@040H7_63650B1`0P356!0)2w0,0*0O0f0l2S885p5Q88100B1Y1,2z8q7n7I4q6+6-3b7O7K7Q6z4B7T6{6r7D4i8A7060607Z0:7#040c0C857+0^7.7f617*5E7c0R7e2-8!7:1$0S5102030e0J0g0K8:8=0g7 7a5E82847f7H4=7J548z4S7v6|6y8K4S8G7V6~3c973H8N9j8+7`750F770P8V8$0^0w8)3k9l4)7j3f9r21640^660E2u8_8?8^8;8?5Z0B0r0d0r2v0r8b0i0K0P0d8v4=0U4^4X4:4Z4-1b0d4$9+2M2H0f5_2G4!6e0Z0#0%0S04.

Tester si un nombre est premier.⚓︎

Nous utilisons une boucle pour afficher (avec print) si un nombre est premier ou non.

La boucle teste si nombre est divisble (avec %) par une variable d (inférieure à la racine carrée de nombre).

###(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

La suite de Fibonacci⚓︎

La suite de Fibonacci est une suite d'entiers définie de manière récurrente, dont les deux premiers termes sont fixés, et chaque terme suivant est la somme des deux précédents.

Définition⚓︎

La suite de Fibonacci \((F_n)\) est définie par :

  • \(F_0 = 0\)
  • \(F_1 = 1\)
  • \(F_n = F_{n-1} + F_{n-2}\) pour tout \(n \geq 2\)

Les premiers termes de la suite sont donc :

\[ 0,\ 1,\ 1,\ 2,\ 3,\ 5,\ 8,\ 13,\ 21,\ 34,\ 55,\ \dots \]

Le but du script suivant est de déterminer le premier terme de la suite qui dépasse un certain seuil. Par exemple si le seuil vaut 100, le terme sera 144, si le seuil est 1000 le terme sera 1597.

###(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 : 5/5
.128013it3a;dv,Fn2S5éwbcy+14: f-up0j_eklohxrP=sà6/mg7050g0F0c0e0b0H0O0x0r0H0e0O0O0N010c0b0B010406050O0A0S0S0e0L0s040m0I0H0A0/0I0k050R0_0{0}0 0@0B04051f181i0R1f0@0g0b0h0%0)0+0-0)0k0T0A0e0T0F0z0B0s0c0J160x0J0b0T0J0H1K0J0c0=050Y0q0H0F1r0*0,011J1L1N1L0c1T1V1R0c0L1g1F0%120O0B0e0k0-0l011X1t010y0!0F0k0e0S0F1R1?1^1}1Z201V23250=0a0x0M0L0I0B0I0O0b150k0x0W1;0L0L0F0r2q18280k1g0R1F2D1-1/1.1S0g2a1u0b0k222n1R1o1q0(1Y2N2P0k0I2T1R0B2w1g2B2D2*0^1@2r2V1~2Z0L0|0H1R0e1I2w0y0-030E0E0r2!0F1N2Y0I0z0U0z0u0=0u180e2+2.0?2-292:1Z2=2@2_2{0F2}012 3133352Q380z1{040l3e3g1^3i2B2M013n0e2^1g2`0J2|2~30320W3x2Z3z0d0=0d3E2A3h0@3I3l0-3L3N053P3R3t3T3w2O3y390v0=0v3$193(3j2/1s3m0I2?3M3p3Q3r3S3v3V3^3X390n0=0n3~2*3)2.3J3-483;3u3U344e37390Q0=0Q4k3h1j2(182T2G0g1/2L3+014t2S1p1g2%0F2)4C3 3G054t4T290b0g0-302B3z3b3O0x4#4%4c4u364*1|2e0F4/4t3W4w3a1R0R3f414o0=4R0r0F0W0k0c3%4W3*430-0;040i5b2C0x524L0k0=0c0F2?0F5j045l5d2W010I0=0N5u5w4n4L0S0b0=0C5u5m5e015g5i4V5k5M5y5H3c5D5T1~0r4+032i0I0A0L0x0O0c0I0r0G5r2s0F0A0K0x5q5s0$0_0r560+0b0y0$2t0)5+0A2p1W2t0j0b0q5u0@5R4Z2r4.014(2.3z3B3/4-4$6k4:4|6n4@244_6s4{4v6v2D515x2;0=160e5~0b6e5L3I6j6l1^3Y3p6P6t6B393Z0x4^4`3@4=6X4 6E5F5N5o040O5?0!5X6F1Z5A045C6g5E3k5N5V040u0C5K6{5Y1Z5!0=5$6/670H0x0P2s0o1@0+5r6M6g526U4)3`6T6r3?4d6%0z3{6Z6x6#7t3_7v6)3i7l6O7r0E7o0z4h4,6U6A7u4h7x257z4;7B7L3$6?0-0G0=0p1J1V6=6+5y6-5`257)6}5y6^020H0c0f6`2*6|427+0=7a6;747Y5O0=0w7k2,7G4/7J4y7M7H7O7B4y7R6y7s7U4f0z8c3E0x8q7|53045557225a7F7*1~5P7/7}6G047-5t828A6@5B8D8t8H6N8K5f0=5Q7{753,542w56588y8V836^0t8N5n5p5r7.8J7:5Z5#0x5H6/7d0x0D5(5*0W0$8H0O874U4Y4D4S4F4P180c4I9a2J2E0e1U970R4G6f0W0Y0!0O04.