Les boucles

Documentation bibliothèque Turtle

Les boucles TantQue
 
Lorsque qu'on ne connaît pas le nombre de fois qu'une boucle doit se répéter, il faut utiliser la boucle TantQue condition.

Le principe est de répéter la boucle TantQue une condition est vraie.

On parle de boucle non bornée puisque le nombre de fois que la boucle doit se répéter n'est pas connu à l'avance.

boucleWhilePrincipe

Exemple

rep=""
while rep=="":
    rep=input("Quel est ton nom ?")
print("Bonjour "+rep)

La boucle va se répéter tant que rep est vide, ce qui permet de reposer la question tant que l'utlisateur n'a pas saisi au moins un caractère.

Les boucles Pour

Lorsque qu'on connaît le nombre de fois qu'une boucle doit se répéter, il est préférable d'utiliser la boucle Pour i de vi à vf par pas de pas.

On parle de boucle bornée puisque le nombre de fois que la boucle doit se répéter est connu à l'avance.

boucleForInIndicePrincipe

 

Exemple 1

somme=0
for j in range(7):
    somme=somme+1

Voici les valeurs de j et somme à chaque fois :

  j somme
 1ère fois 0 1
 2ème fois 1 2
 3ème fois 2 3
 4ème fois 3 4
 5ème fois 4 5
6ème fois 5 6
7ème fois 6 7

Exemple 2

somme=0
for j in range(2,8,2):
    somme=somme+1

Voici les valeurs de j et somme à chaque fois :

  j somme
 1ère fois 2 1
 2ème fois 4 2
 3ème fois
6
3
 
Exercice 1

Réaliser une boucle For... in range(...) afin d'obtenir la suite de nombre suivante sur une seule ligne :

12 - 10 - 8 - 6 - 4 - 2 - 0 -

Exercice 2- en lien avec la spécialité mathématiques

Soit les équations suivantes :

exo math1

Ecrire un programme en Python qui calcule les triplets ( x; f (x); g (x) ) pour x entier naturel entre 0 et 10.

Il faut afficher un triplet par ligne.

Expliquer pourquoi les f et g ne donnent pas les mêmes résultats.

Exercice 3a - Convertir une boucle while en boucle For... in range(...)

Tester le programme suivant :

from turtle import *
reset()
a=0
while a<12:
    a+=1
    forward(150)
    left(150)
done()

Modifier le programme pour obtenir le même résultat avec une boucle for... in range(...)

Exercice 3b

Modifier le programme afin d'obtenir la forme suivante :

turtle 1carre

Voici quelques fonctions de base de Turtle :

turtle instructions

Exercice 3c : créer 2 boucles imbriquées

Modifier le programme précédent pour obtenir le schéma suivant :

turtle 5carres

Les boucles PourChaque

Certaines structures de données, nommées séquences, sont itérables, c'est à dire qu'une boucle Pour peut parcourir chacun de ses éléments.

En notation algorithmique on utilisera PourChaque élément dans séquence.

Il s'agit aussi d'une boucle bornée puisque la séquence est connue, et donc son nombre d'éléments.
 

boucleForInElementPrincipe

En python les séquences itérables sont :

- les chaînes de caractères,

- les listes ou tableau,

- les tuples,

- les dictionnaires.

Exercice avec les chaînes de caractères

Tester le code suivant :

chaine="Bonjour tout le monde"
nb=0
for lettre in chaine:
    if lettre.lower() in "aeiouy":
        nb=nb+1
print(f"Nombre de voyelles = {nb}")

Modifier le script afin de compter le nombre de fois que la lettre contenue dans la variable lettreATrouver est présent dans chaine.

Exercices 

- Site Cercle Informatique

Exemple de boucle avec un tableau

tab1 = [2,5,9,11,16]
for nb in tab1:
    print(nb)

Pour les exercices, aller sur l'activité sur les tableaux.