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.
-
Que vaut la variable
somme après l'exécution du code suivant ?
| somme = 0
for i in range(1, 5):
somme += i
|
-
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)
|
-
Combien de fois la boucle suivante s'exécute-t-elle ?
| for i in range(100, 1, -3):
pass
|
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
.128013oIPf lkg:+,bry2a1éh3tvw=ue(Sà n_s-c)im/4p0d050Q0A0v0q0K0g0G0f0I0g0q0G0G0y010v0K0O010406050G0z0L0L0q0n0o040C0b0g0z0+0b0E050M0=0@0_0{0:0O04051b141e0M1b0:0Q0K0w0Z0#0%0)0#0E0i0z0q0i0A0H0O0o0v0t120f0t0K0i0t0g1G0t0v0.050U0m0g0A1n0$0(011F1H1J1H0v1P1R1N0v0n1c1B0Z0~0G0O0q0E0)0p011T1p010e0W0A0E0q0L0A1N1/1;1_1V1|1R1 210.0a0f0d0n0b0O0b0G0K110E0f0S1-0n0n0A0I2m14240E1c0M1B2z1)1+1*1O0Q261q0K0E1~2j1N1k1m0!1U2J2L0E0b2P1N0O2s1c2x2z2$0;1:2n2R1`2V0n0^0g1N0q1E2s0e0)030F0F0I2W0A1J2U0b0H0u0H0r0.0r140q2%2*0/2)252,1V2.2:2=2@0A2_012{2}2 312M340H1@040p3a3c1;3e2x2I013j0q2;1c2?0t2^2`2|2~0S3t2V3v0u0.0u3A2w3d0:3E3h0)3H3J053L3N3p3P3s2K3u350N0.0N3Y153d1f2!142P2C0Q1+2H3%013Q221c401d3~2(3{3C05472#2*0f0K0Q0)2|2x3v373K4k4m013/3R3;3T35370f2a0A4n3r4x324q1N0M3b3f2+1o3i0.0G0b0@0A3Z3C0f4N3F0b0.0y4W2y4Y3$4P0)0L0K0.0P4(044*4j450I4r030f0c0E2l0K3I0K0G0q2m2o1S0#0f0w0_511Q1S4S4U4=0:4e2y4Z4l4F4p353x3+4t4F473S335q1^4D5u3:4I5y2z3b5j2(3E5n4v0F5p343l5K4w304y5x5O4C204E5L5v5T3U4K4M4+2S010h0.0e0b0n4=4@3g4,3G0.0K5;4Z450b0x5_135k4?5|5@0E0m0.0n1;1w4=645*0-040B6c5)1`4.386i4^5@6f0l6n5?5*6l040r0P39626d1`6f0J0j5{6j1V4`0.4|0K5a2?2Z1~0Q2s0f1R0Y5b1R0z0n0Y2p0r0f0D0f6x0P4k0E0!0z0G5i6s2n5Q5M2*3v3@4s6@5!5D0H3@5W215B4H3=705%4?0f7a6B4Q045g216G6o5*4#040k4%625=4O5*0E5_7h6t1`6J046L6-0n0s210E0U562p6M2p595b0n5d1R0f7f4V625H3|0M4h3}0A2z4a2A42142D7%0q5e7Z1l3e0M0S0U0W0G04.
Une boucle for pour calculer factoriel n
Après les tours de boucle, la variable factorielle doit valoir n!
.128013oIPf lkg5:+,bry2a1h3tv!w=u6e(*SĂ n_s-c)im/4p0d050T0C0v0r0N0g0J0f0L0g0r0J0J0z010v0N0R010406050J0A0O0O0r0o0p040F0b0g0A0.0b0H050P0^0`0|0~0?0R04051e171h0P1e0?0T0N0w0$0(0*0,0(0H0i0A0r0i0C0K0R0p0v0t150f0t0N0i0t0g1J0t0v0;050X0n0g0C1q0)0+011I1K1M1K0v1S1U1Q0v0o1f1E0$110J0R0r0H0,0q011W1s010e0Z0C0H0r0O0C1Q1=1@1|1Y1 1U22240;0a0f0d0o0b0R0b0J0N140H0f0V1:0o0o0C0L2p17270H1f0P1E2C1,1.1-1R0T291t0N0H212m1Q1n1p0%1X2M2O0H0b2S1Q0R2v1f2A2C2)0@1?2q2U1}2Y0o0{0g1Q0r1H2v0e0,030I0I0L2Z0C1M2X0b0K0Q0K0s0;0s170r2*2-0=2,282/1Y2;2?2^2`0C2|012~3032342P370K1`040q3d3f1@3h2A2L013m0r2@1f2_0t2{2}2 310V3w2Y3y0u0;0u3D2z3g0?3H3k0,3K3M053O3Q3s3S3v2N3x380Q0;0Q3#183%3i2.1r3l0b2=3L3o3P3q3R3u3U3@3W380j0;0j3}2)3(2-3I3,473:3t3T334d36380B0;0B4j3g1i2%172S2F0T1.2K3*014s2R1o1f2$0C2(4B3~3F054s4S280N0T0,2 2A3y3a3N0f4!4$4b4t354)1{2d0C4.4s3V4v391Q0P3e404n0;164U2B0f514K0b0;0z3$3F573)420,0O0N3b0S5d56585h4L4*030f0c0H2o0N3L0N0J0r2p2r1V0(0f0w0|5y1T1V2q0G0f5G5I1U0A0o2r150v0f1G0w0C130$3L0L0A1U5U0H0x5n3h554Y2q4-014%2-3y3A3.4,4#5^4/4{5{4?234^604`4u632C3e0?5;515@5_1@3X3o6g6169383Y0f4@4_3?4;6o4~505g2V3J0;0e0r2x440N331U5/5f4m595b6J5p6z5j3b6O6y1}0L5s5u5w0.5z5B2y5;6d2+3H6l4(3_6k5 3=4c6u3764246s6=3^6@6b5:6*4m6,5`4f6/6`4:6|4g6q657662746~6P1}0h6B446T6L5q0H0;0N7l3j5q0b0y7p542)6K7s6z0H0n0;0o1@1z5/7g1Y0:040D7I6U1Y6R3B7O7m6z7L0m7r417B537Y3I5a040l7$4K7R3c6e7P0,7L0M0k7+5q6W0;5t2l5T5P0C0#210.0C0o0#2s0q0f5O7x3 7/716:0I6-0K4x4+6l686?4x7a6_676t6|8j3D0f8w7z7Z2:6B6D0v6F6H0C7^6z7(0E5c5;8y52047q6(7I0P4X4C4R4E4O170v4H8Z2I2D0r5L2C4F6d0V0X0Z0J04.
Une boucle pour dessiner un triangle en ASCII art.
Le but de cet exercice est de dessiner le triangle suivant :
| Text Only |
|---|
| *
***
*****
*******
*********
***********
*************
***************
*****************
*******************
|
Astuces
Ainsi " " * 3 + "*" * 4 donne " ****"
Compter les e dans un phrase.
Une boucle peut permettre de compter le nombre d'occurrences de e.
.128013oPf lkg5:î+,bry2a1CAh3tvwT=u6eSn_s-c7im./4ép0d050U0E0x0r0M0f0I0e0K0f0r0I0I0B010x0M0S010406050I0C0N0N0r0o0p040F0b0f0C0/0b0G050P0_0{0}0 0@0S04051f181i0P1f0@0U0M0y0%0)0+0-0)0G0h0C0r0h0E0J0S0p0x0v160e0v0M0h0v0f1K0v0x0=050Y0n0f0E1r0*0,011J1L1N1L0x1T1V1R0x0o1g1F0%120I0S0r0G0-0q011X1t010d0!0E0G0r0N0E1R1?1^1}1Z201V23250=0a0e0c0o0b0S0b0I0M150G0e0W1;0o0o0E0K2q18280G1g0P1F2D1-1/1.1S0U2a1u0M0G222n1R1o1q0(1Y2N2P0G0b2T1R0S2w1g2B2D2*0^1@2r2V1~2Z0o0|0f1R0r1I2w0d0-030H0H0K2!0E1N2Y0b0J0D0J0s0=0s180r2+2.0?2-292:1Z2=2@2_2{0E2}012 3133352Q380J1{040q3e3g1^3i2B2M013n0r2^1g2`0v2|2~30320W3x2Z3z0w0=0w3E2A3h0@3I3l0-3L3N053P3R3t3T3w2O3y390Q0=0Q3$193(3j2/1s3m0b2?3M3p3Q3r3S3v3V3^3X390i0=0i3~2*3)2.3J3-483;3u3U344e37390D0=0D4k403*433,453o3O3q3s4s3@363z0L0=0L4B3G1j2(182T2G0U1/2L3+014t2S1p1g2%0E2)3h3%4T4t4.290M0U0-302B3z3b4I4^4`4c4u4N393b0e2e0E514t3W4w3a1R0P3f414o0=0S3Q0*0E4:2C0e5i4$0b0=0B5p045r4D2W010I3B010A1G0I1W0z1G0%4@0|0h3^0e1^1E1J1w0m5M2/2w0r0x1W1F1W0M0N2m0+0M1U0E0O015x0e5z4n4$0K4~030e0t2p5!0M0b5x0@3 4T3I50014{2.3z3B3/0e683?4d543A1|585a4M3_6k2D5h5A2;0=17655q5s4E3K0=0W5=6z5B0G0=0u1v6E6t3m0=0A0C0o2O0h635x5i6g0H4|393Z4 4_69525c3Y6l24596(5b4v6+6r4?426G0=325*5#6Q6L5^6A5u045w6x5y6F1~0N0M0=0T6U756W6%6a1^3z3{6$6n6i6p3{576-7m537o5f3f642,677g6Y6b4g3p6X6:6j4h7q257s6*7D6?771Z0g0=0d456 3k6A6H040f7V6^1~0b0z0=2O7#5j045l0o5n6V6M0-0;040j7,5_5{0e1@0o326Q0$2t0)0%0v0r0k2P7~5m5I7~0}0e1V1)2w8g7d7y4n6X6Z387E7A7G6p4y7J6.6h7t4f8q6?5?5?7P0-7R040M0d7{7X0=7!755@7W5B720B742*8Q7$1Z0I4~000E007=705B7^7`757x4/7z518p4P7l6/6o8A4P8w7L6;398@3E8D938X7-6{0S6}0o8L8S0=0l8V3h954$793c9b1~5`0=5|0C2r8$005R0e0R0x0R2s0R810y0E0o0x8l4/0P4=4U4-4W4*180x4Z9O2J2E0r5.2D4X640W0Y0!0I04.
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).
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.
.128013oP;f lkg5:j+,Fbry2a1éh3tvw=u6eSà nx_s-c7im/4p0d050U0E0y0t0O0g0K0f0M0g0t0K0K0B010y0O0S010406050K0C0P0P0t0q0r040F0b0g0C0/0b0H050Q0_0{0}0 0@0S04051f181i0Q1f0@0U0O0z0%0)0+0-0)0H0i0C0t0i0E0L0S0r0y0w160f0w0O0i0w0g1K0w0y0=050Y0p0g0E1r0*0,011J1L1N1L0y1T1V1R0y0q1g1F0%120K0S0t0H0-0s011X1t010e0!0E0H0t0P0E1R1?1^1}1Z201V23250=0a0f0c0q0b0S0b0K0O150H0f0W1;0q0q0E0M2q18280H1g0Q1F2D1-1/1.1S0U2a1u0O0H222n1R1o1q0(1Y2N2P0H0b2T1R0S2w1g2B2D2*0^1@2r2V1~2Z0q0|0g1R0t1I2w0e0-030J0J0M2!0E1N2Y0b0L0N0L0u0=0u180t2+2.0?2-292:1Z2=2@2_2{0E2}012 3133352Q380L1{040s3e3g1^3i2B2M013n0t2^1g2`0w2|2~30320W3x2Z3z0x0=0x3E2A3h0@3I3l0-3L3N053P3R3t3T3w2O3y390R0=0R3$193(3j2/1s3m0b2?3M3p3Q3r3S3v3V3^3X390j0=0j3~2*3)2.3J3-483;3u3U344e37390D0=0D4k3h1j2(182T2G0U1/2L3+014t2S1p1g2%0E2)4C3 3G054t4T290O0U0-302B3z3b3O0f4#4%4c4u364*1|2e0E4/4t3W4w3a1R0Q3f414o0=4R0M0E0W0H0y3%4W3*430-0;040n5b2C0f524L0H0=0y0E2?0E5j045l5d2W010b0=0B5u5w4n4L0P0O0=0T5u5m5e015g5i4V5k5M5y5H3c5D5T1~0M4+032i0b0C0q0f0K0y0b0M0h5r2s0E0C0I0f5q5s0$0_0M560+0O0e0$2t0)5+0C2p1W2t0o0O0p5u0@5R4Z2r4.014(2.3z3B3/4-4$6k4:4|6n4@244_6s4{4v6v2D515x2;0=160t5~0O6e5L3I6j6l1^3Y3p6P6t6B393Z0f4^4`3@4=6X4 6E5F5N5o040K5?0!5X6F1Z5A045C6g5E3k5N5V040u0T5K6{5Y1Z5!0=5$6/670g0f0G2s0v1@0+5r6M6g526U4)3`6T6r3?4d6%0L3{6Z6x6#7t3_7v6)3i7l6O7r0J7o0L4h4,6U6A7u4h7x257z4;7B7L3$6?0-0h0=0A1J1V6=6+5y6-5`257)6}5y6^020g0y0d6`2*6|427+0=7a6;747Y5O0=0k7k2,7G4/7J4y7M7H7O7B4y7R6y7s7U4f0L8c3E0f8q7|53045557225a7F7*1~5P7/7}6G047-5t828A6@5B8D8t8H6N8K5f0=5Q7{753,542w56588y8V836^0m8N5n5p5r7.8J7:5Z5#0f5H6/7d0f0l5(5*0W0$8H0K874U4Y4D4S4F4P180y4I9a2J2E0t1U970Q4G6f0W0Y0!0K04.
Remarque
.of lg5j,br1atue(Ă nxsLc)im./4pd050C040u0l0c0i0a0n0v0d0o0c050v0a0D0o040b0a0j050A0S0U040c0l0g0L0m0P0O0t0c0o0r0m0x0o0j0:0U0c0k0c0q0c0B0 0Q0$0V0t0a0y0y0o0!150(0p0v0l0j140T0V0j0l0r0e0o0p0k0h0c0f0w1c1k0(0o0s0N0n0m1u0w0z0!0F.