TP n°10 - Récapitulatif : variables, boucles et aléatoire
1ère année maturité
Tout le contenu vu durant les TP fait partie entière de la matière à connaître lors d'évaluation.
Objectifs
- Utiliser la boucle FOR quand on connait le nombre de répétitions.
- Imbriquer des boucles.
- Imbriquer des boucles.
Vous connaissez déjà l'utilisation de la boule FOR pour parcourir une liste d'élément. Elle peut s'avérer également plus simple à utiliser que la boucle WHILE lorsque on connait le nombre de fois que l'on veut répéter un bout de code.
Par exemple, les deux codes ci-dessous produisent exactement le même rendu.
i = 12
while i>0 :
fd(200)
dot(30, 'red')
bk(200)
left(360/12)
i = i - 1
for i in range(0, 12) :
fd(200)
dot(30, 'red')
bk(200)
left(360/12)
On voit dans cet exemple, qu'on connait en avance le nombre de fois que la boucle va être effectuée. On peut alors utiliser une boucle FOR avec l'instruction i in range(0, 12) comment condition.
La variable i va alors prendre les valeurs [0, 11]. La boucle sera bien effectuée 12 fois.
La fonction range() retourne un intervalle de nombres entiers, sans les stocker en mémoire (contrairement à une liste), ce qui la rend très efficace avec la boucle FOR.
Syntaxe
range(start, stop, step)| Paramètre | Description |
|---|---|
start | Optionnel. Premier nombre entier de l'intervalle, par défaut 0. |
stop | Obligatoire. Dernier nombre entier de l'intervalle. Attention: non-compris. |
step | Optionnel. Défini l'écart entre chaque nombre de l'intervalle. Par défaut 1. |
for x in range(2, 6):
print(x)
# Résultat# 2
# 3
# 4
# 5
for x in range(4):
print(x)
# Résultat# 0
# 1
# 2
# 3
for x in range(1, 6, 2):
print(x)
# Résultat# 1
# 3
# 5
Pour se familiariser avec cette écriture de la boucle FOR, écrivez un code Python (sans Turtle) produisant les étapes suivantes.
- Ecrivez une boucle, pour afficher les 50 premiers nombres entiers, en partant de 0.
- Modifiez votre script pour que la boucle calcule la somme des ces nombres, puis l'affiche.
En combinant les boucles et le module random, vous allez générer des codes-barres selon le principe suivant.
- Un code-barre est une suite de rectangles noir ou blanc, qui représente un bit et donc encode une information.
- Générez des codes barres-aléatoires de 200 bits
- Chaque "bit" est représenté par un rectangle de 3x100 px
- Utilisez une boucle pour générer chaque "bit"
- A chaque tour de la boucle, déterminez aléatoirement la couleur (noir ou blanc) du rectangle.
Pour rappel, pour remplir une forme d'une couleur spécifique, vous devez utilisez le fonction begin_fill() et end_fill()
Challenge !
En utilisant le principe d'une boucle dans une boucle, on va pouvoir réaliser facilement des structures plus complexes.
Trouvez un moyen, à l'aide de deux boucles, de dessiner un quadrillage de 10 points sur 10 points.
Astuce : trouver d'abord la boucle qui permet de dessiner une ligne (ou une colonne) de point. Une fois fait, répéter cela autant que nécessaire.
Ajoutez une dimension aléatoire sur la taille du quadrillage.
En reprenant le code de l’exercice 2 (vous le copier dans un nouveau fichier), modifiez le script pour simuler la création de faux QR-code, une image composée de petits carrés colorés et blancs.
Les QR-code est également un système de codage de l'information inventé en 1994.