9. Itérer - range()
¶
Dans ce chapitre, nous allons voir de près comment une variable peut parcourir ou itérer sur une plage numérique.
Une boucle permet de raccourcir le code et de mieux le structurer. Une boucle ne représente pas seulement une économie de lignes de code, mais donne aussi la possibilité de contrôler le nombre de répétitions. Nous allons voir que :
la boucle
for
répète du code pour un ensemble de valeurs données,la variable d’itération
i
prend une autre valeur à chaque tour,le parcours est possible sur des plages numériques, du texte, et des listes.
Parcourir une séquence¶
Dans la boucle for
une variable d’itération va parcourir une valeur après l’autre d’une séquence d’objets. Cette séquence peut être :
une plage numérique avec
range()
,une chaîne de caractères,
une liste.
La variable d’itération prend successivement les valeurs 0 à n-1.
Comme la variable d’itération est de type entier (int
) on l’appelle souvent i
.
Nous reprenons l’exemple précédent du polygone, mais cette fois nous ne dessinons pas les segments, mais seulement les sommets. La valeur de la variable d’itération i
est affichée à chaque sommet du polygone.
Exercice : Testez avec des nombres différents entre 5 et 13.
Itérer avec range()
¶
La fonction range(start, stop, step)
permet de produire une séquence linéaire d’entiers. Les entiers se trouvent dans l’intervalle semi-fermé [start, stop[
avec un incrément de step
.
Le sens des paramètres :
start
est la valeur de départ,stop
est la valeur finale, mais sans l’inclure,step
est l’incrément.
La fonction print()
utilise le paramètre optionnel end
pour ne pas terminer avec un retour à la ligne, mais par un simple espace.
Exercice : Affichez les entiers entre -50 et 200 avec un incrément de 25.
Dessiner une spirale¶
Si nous dessinons un polygone, mais augmentons la longueur de chaque segment successif en utilisant la variable d’itération i
, nous obtenons une spirale.
Deux boucles imbriquées¶
Dans Excel, les cellules sont désignées avec une lettre et un nombre. Pour recréer les noms de cellule nous parcourons une chaîne de chiffres et une deuxième fois dans une chaîne de lettres.
On appelle la première boucle avec y
la boucle extérieure et la deuxième boucle avec x
la boucle intérieure.
Nous concaténons les deux éléments lettre et nombre (x + y
) et nous ajoutons l’option end=' '
pour remplacer le retour à la ligne par un espace.
Pour bien montrer l’ordre consécutif, nous importons la fonction sleep()
du module time
pour ralentir le parcours de la boucle.
Exercice : Transformez le code pour afficher 20 colonnes de cellules.
Itérer sur x et y¶
Deux boucles imbriquées peuvent itérer dans les directions x et y. Ceci permet d’afficher les coordonnées de la tortue.
Grille de points¶
Le programme suivant dessine des points sur une grille régulière avec une distance d
entre les points. Nous utilisons deux boucles imbriquées avec les variables d’itération x
et y
.
Position (x, y)
¶
Un tuple est la forme idéale pour représenter les deux coordonnées (x, y)
d’un point. Nous allons dorénavant utiliser la lettre p
pour point (ou position). Si deux points sont nécessaires, nous les appellerons p
et q
.
Pour accéder aux coordonnées x
et y
du point p
nous utilisons un indice (un entier entre crochets) :
p[0]
pour la coordonnée xp[1]
pour la coordonnée y
La fonction goto()
accepte :
deux coordonnées séparées
goto(x, y)
deux coordonnées dans un tuple
goto(p)
Nous pouvons définir une fonction ligne()
qui dessine une ligne entre deux points.
Grille de lignes¶
Le programme suivant dessine une grille de lignes qui sont à une distance d
les unes des autres. Nous utilisons deux boucles séparées avec les variables d’itération x
et y
.
Grille de Sudoku¶
Le programme suivant dessine une grille de Sudoku 3x3 avec une distance d
entre les lignes. La particularité de la grille Sudoku est que chaque 3e ligne est accentuée. Nous utilisons la condition modulo i%3
pour ceci.
Grille de tic-tac-toe¶
La grille du jeu tic-tac-toe est une grille 3x3. Nous ajoutons des étiquettes a-c pour les colonnes et 1-3 pour les lignes.
Jouer au tic-tac-toe¶
Pour jouer au tic-tac-toe, nous devons déchiffrer les noms des cellules qui sont constituées d’une lettre (a-c) et d’un chiffre (1-3). En alternance nous plaçons une croix et un cercle.
Plateau d’échec¶
Le plateau d’échec est constitué de 64 carrés qui sont alternativement noirs ou blancs.
Exercices¶
Téléchargez un exercice.
Éditez-le dans un éditeur.
Déposez-le sur Moodle.
Cadran¶
Dessinez le cadran d’une montre avec 60 petits points pour les minutes et secondes et 12 grands points pour les heures. Utilisez la fonction modulo i%5
pour faire la différence entre les petits et les grands points.
Plateau d’échec¶
Dessinez un échiquier, numérotez les lignes 1-8 et les colonnes a-h, et placez les pions noirs et blancs aux positions de départ.
Musée d’art et d’histoire¶
Le Musée d’art et d’histoire de Genève a mandaté le studio de graphisme zurichois Hubertus Design pour renouveler son identité visuelle. Ce logo à la ligne graphique dynamique, sobre et contemporaine symbolise dorénavant la marque MAH.
Créez 3 autres lettres dans le même style pour un autre musée dans une autre ville. Changez texte et couleur.
Logo de l’EPFL¶
En mars 2019, l’EPFL profite de son anniversaire de 50 ans pour renouveler son logo. Tout en maintenant la couleur du drapeau helvétique, l’agence Moser Design utilise une police de caractères suisse, l’Helvetica Neue. Les lettres ont été remaniées à la manière de pixels pour laisser transparaître la dimension numérique de l’école. On peut percevoir dans le négatif des lettres E et F deux croix helvétiques.
Selon le même schéma, créez un logo pour une autre institution. Justifiez le choix de la couleur.