TP n°10 - Récapitulatif : variables, boucles et aléatoire

1ère année maturité
Les TP de programmation se font au travers du site web et les exercices sont à sauvegarder sur votre OnDrive dans le dossier de TP.
Tout le contenu vu durant les TP fait partie entière de la matière à connaître lors d'évaluation.
Objectifs
  1. Utiliser la boucle FOR quand on connait le nombre de répétitions.
  2. Imbriquer des boucles.
  3. 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.

python
                                        
i = 12
while i>0 :
    fd(200)
    dot(30, 'red')
    bk(200)
    left(360/12)
    i = i - 1
                                        
                                    
python
                                        
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.

Définition de RANGE()

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ètreDescription
startOptionnel. Premier nombre entier de l'intervalle, par défaut 0.
stopObligatoire. Dernier nombre entier de l'intervalle. Attention: non-compris.
stepOptionnel. 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
Exercice 10.1

Pour se familiariser avec cette écriture de la boucle FOR, écrivez un code Python (sans Turtle) produisant les étapes suivantes.

  1. Ecrivez une boucle, pour afficher les 50 premiers nombres entiers, en partant de 0.
  2. Modifiez votre script pour que la boucle calcule la somme des ces nombres, puis l'affiche.

Exercice 10.2

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.
Modules Python

Pour rappel, pour remplir une forme d'une couleur spécifique, vous devez utilisez le fonction begin_fill() et end_fill()

Modules Python

Exercice 10.3

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.

Modules Python

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.

Exercice 10.4

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.

Modules Python
Damien Cardinaux © 2024 - 2026. Ce site est sous licence CC BY-NC-SA 4.0