top of page

Chapitre 5 :  Python, «  Structures Itératives ou Boucles non bornées »

Python-logo-notext.svg.png

Il existe en Python deux types de boucles : la boucle « while » (non-bornée) et la boucle « for » (bornée). « while » se traduit par « tant que » en français. « for » se traduit par « pour » en français. 

1. Boucle while

La boucle for a l'avantage d'être simple à utiliser, mais elle nécessite de connaître à l'avance (avant d'entrer dans la boucle) le nombre de tours de boucles qui vont être effectués. Dans certaines situations, on souhaiterait demander au programme de sortir de la boucle lorsqu'une certaine condition est réalisée, par exemple lorsqu'une valeur dépasse un certain seuil, ou lorsque l'utilisateur a saisi le bon mot de passe ou cliqué sur un bouton. La boucle while permet de
répondre à ce besoin.

Syntaxe de la boucle while : :


while condition:
        bloc d'instructions A
bloc d'instructions B


Tant que la condition est vraie, le bloc d'instructions A est exécuté, généralement plusieurs fois. Les instructions du bloc A agissent sur la condition pour la rendre fausse au bout d'un certain nombre de tours. Alors le programme sort de la boucle et se poursuit avec l'exécution du bloc B.

Remarques :
• Il est possible que la boucle ne soit jamais exécutée, si la condition est initialement fausse.
• Il est possible que le programme boucle indéfiniment et ne s'arrête jamais, lorsque la condition est toujours vraie. On parle alors de boucle infinie (à éviter !!!)

Exemple de boucle infinie :


i = 0
while i < 10 :
    i = i -1


On peut se passer complètement des boucles for et les remplacer par des boucles while comme le montrent les deux programmes équivalents ci-dessous :

Boucle bornée:


for i in range(5):
     print("Coucou")

 

Boucle non bornée:


i = 0
while i < 5:
    print("Coucou")
    i = i + 1


On utilise donc la boucle « while » si on ne connais pas le nombre itérations en amont, ou si on veut incrémenter par un nombre non-entier. Sinon, on peut utiliser la boucle « for », ce qui est plus simple.

Remarque : i=i+1 peut aussi s’écrire i+=1 sous Python

Autre exemple, on ne sait pas quand la boucle va s’arreter :

e=int(input('entrer un nombre entier différent de 0'))
while e==0:
    e=int(input('il faut un nombre entier différent de 0'))
print(e)

 

Ce programme permet de demander à un utilisateur un nombre entier différent de 0, tant que l’utilisateur n’entre pas une valeur respectant cette contrainte, il devra recommencer. L’intérêt de ce type de boucle est d’être sûr que l’utilisateur aura entré une valeur qui respectera les contraintes souhaitées par le programme. Nous remarquerons que cette boucle n’utilise pas d’itérateur.

Remarque : On peut combiner des boucles « while » sur plusieurs niveaux, tout comme des conditions, il faut donc être toujours très vigilant au bon usage des indentations. Exemples :

1.png

2. Problèmes de seuil
 

La boucle "while" est souvent utilisée (notamment en mathématiques) pour déterminer le rang à partir duquel un certain seuil sera dépassé ou atteint. Exemple : La population d'un village de 1000 habitants augmente chaque année de 17 habitants en moyenne. Voici un programme qui calcule le nombre d'années au bout duquel la population de ce village risque de dépasser 1300 habitants.

def nombreAnnees(population):
    annee = 0
    while population <= 1300:
        population = population + 17
        annee = annee + 1
    return annee
print(nombreAnnees(1000))

Résume du chapitre 5:
Pour une boucle "while" on est obligé d'initier une variable 'itérateur' avant d'entrer dans la boucle et de mettre en place une condition d'arrêt à l'intérieur de la boucle, souvent l'incrémentation de la variable 'itérateur'. 

Exercices à faire à la maison:

Cette année, nous travaillerons pour les devoirs avec le site : https://basthon.fr Ce site vous permettra d’écrire et d’exécuter des programmes Python 3 dans un ‘bac à sable’.


Exercice 1 : Étudier chacun de ces programmes pour en comprendre leurs fonctionnements respectifs puis expliquer ce qu’ils font. Expliquer pourquoi chacun de ces programmes se terminera, expliquer la différence entre un arrêt aléatoire, autonome ou guidé.

e=int(input('entrer un entier positif inférieur à 100 '))
while e<=0 or e>=100:
    e=int(input('entrer un entier positif inférieur à 100 '))
print(e)

i=100
while i!=0:
    if i%10==0:
        print(i)
    i=i-1

n=121
c=int(input('Entrer un nombre entier '))
while c!=n:
    if c<n:
        print("C'est plus grand!")
    else:
        print("C'est plus petit!")
    c=int(input('Entrer un nombre entier '))
print('Gagné!!')


Exercice 2 : Exécuter les programmes ci-dessous, ils sont incorrects. Expliquer pourquoi ils sont incorrects, puis proposer des modifications pour qu’ils ne renvoient pas d’erreur, puis tester.

n=-1
e=int(input('entrer un entier positif ou nul inférieur à 100 '))
while n<0 or n>=100:
    e=int(input('entrer un entier positif ou nul inférieur à 100 '))
print(e)

b=1
while b!=100:
    print(b)
    b=b+2
print(b+9)

k=50
while k<100:
    print(k)
    k=k-1
print(k)


Exercice 3 : Exécuter les programmes ci-dessous avec différentes boucles. Donner le nom de l’itérateur, les valeurs imprimées dans l’ordre, ainsi que le nombre de tours effectués par la boucle.

m=1
while m!=5:
    m=m+1
    print(m)

n=0
while n>-5:
    n=n-2
    print(n)

h=1
while h<200:
    h=h*2
    print(h)


Exercice 4 : Exécuter les programmes ci-dessous. Quel va être de résultat des fonctions « print » ? Est-ce qu’il y a des erreurs ? Expliquer les résultats

while h<12:
    h=h+1
    print(h)

i=0
b=False
while not b:
    if i==7:
        b=True
        print(i,b)
    else:
        i=i+1

c=0
iterateur=1
while iterateur<=30:
    if iterateur%3==0:
        c+=1
        print(iterateur)
    iterateur+=1
print('il y en a: ',c)

init=200
n=0
while init<2000:
    init=init*1.05+50
    n+=1
print(n, init)


Exercice 5 :  On dispose d'un capital de 1 000€, et chaque année, on perçoit 5% d'intérêts composés et puis on ajoute 500€ sur le compte. Compléter ce programme permettant de calculer au bout de combien d'années la valeur du compte dépassera-t-elle les 10 000€ ?

def nombreAnnees(capital):
    annee = 0
    while capital ... 10000:
        capital = ...
        annee = ...
    return annee
print(nombreAnnees(1000)

Exercices de révision Python Chapitre 5, suite au TP 5 sur CAPYTALE

© 2026 TECHNOLOGIE - RODAT

bottom of page