TP n°9 - Le module RANDOM

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. Importer et utiliser le module random.
  2. Ajouter de l'aléatoire dans son code.

Dans l'exemple ci-dessous, les formes affichées sont toutes construites de la même manière. Ce sont en réalité des spirales à 300 côtés. Mais l'angle ente chaque côté est aléatoire tout comme la couleur.

Cet exemple est le résultat d'un seul script.

Le mot random signifie aléatoire en français.

Le module Pythyon random ajoute des fonctions permettant d'introduire une dimension aléatoire à nos scripts.

De la même manière que le module turtle, il faut l'importer au début du script, grâce à :
from random import *

Les instructions utiles du modules random
Fonction RANDRANGE

Définition : randrange(start, stop, *gap)

La fonction randrange retourne un nombre entier compris entre start et stop, non compris. Elle peut prendre un troisième paramètre, gap, qui représente le saut entre chaque entier et vaut par défaut 1.

Exemple :

nb = randrange(10, 40, 5) nb prendra une valeur comprise dans l’ensemble {10, 15, 20, 25, 30, 35}

Fonction CHOICE

Définition : choice(list)

La fonction choice retourne au hasard un élément d’une liste.

Exemple :

couleurs = ["blue", "green", "red"]
C = choice(couleurs)
La variable C contient une des trois couleurs définies dans la liste couleurs.

Exercice 9.1

Pour se familiariser avec la notion d'aléatoire dans un code, voici ce que nous allons produire, en 3 étapes.

Etapes pour ajouter de l'aléatoire

Etapes à produire

  1. Grâce à une boucle WHILE et à l’instruction bgcolor(color) qui permet de définir la couleur de fond, coder un script pour produire la première image.
    • La torture doit être cachée
    • La vitesse de dessin définie au maximum
    • Utiliser des variables pour définir la taille des traits et l'angle en chaque trait

  2. Pour obtenir la deuxième image, commencez par importer le module random, puis:
    • Utiliser la fonction randrange pour définir de manière aléatoire la taille des traits
    • Faire de même pour l’angle, variant entre 2 et 15 degrés

  3. Pour terminer, définissez une liste de couleur de votre choix, par exemple couleurs = ['red', 'yellow', 'blue'], et faites en sorte que la couleur de chaque trait soit aléatoire parmi votre liste de couleurs.
Exercice 9.2

Écrivez un script qui va dessiner 100 points blancs, de taille aléatoire comprise entre 10px et 50px, placés aléatoirement sur la une fenêtre de fond noir.

L'exemple d'introduction reprend un exercice simple que nous avons vu dans le TP précédent (ex. 8.4). Il est basé sur le concept de la spirale carrée qui augmente à chaque tour, mais au lieu d'avoir un angle de 90°, on va le modifier.

Exercice 9.3
Modules Python

Repartez de cet exemple de spirale carrée en respectant les points suivants :

  1. On doit pouvoir modifier facilement : le nombre de tours, la taille du premier ségment, l'angle entre chaque ségment.
  2. L'augmentation de la taille du prochain ségment à chaque tour vaut la valeur de la taille du premier.
  3. Définissez l'angle à 91 pour le moment, la taille initiale à 10, et 30 ségments seulement.

Une fois ceci testé et approuvé, passez à la randomisation !!

  1. Augmentez le nombre de tours à 300 et la taille initiale à 2.
  2. Définissez l'angle de manière aléatoire entre 55 et 140.
  3. Pour accélérer votre code, au lieu de speed(0), utilisez tracer(0)
  4. Vous pouvez également faire varier la couleur en utilisant une liste.

Nous avons vu que les couleurs, en informatique, sont encodées en RGB (red-green-blue). Ces trois composantes peuvent chacune prendre une valeur comprise entre 0 et 255.

En utilisant au début de votre script l’instruction colormode(255), vous spécifiez à Python que vous aimeriez définir les couleurs de cette manière.

On va alors définir et utiliser une couleur, par exemple, comme ceci :

python
                                        
colormode(255)

orange = (255, 127, 0)
dot(20, orange)

color((10, 230, 185))
forward(200)

                                    
Exercice 9.4

Modifiez votre spirale de l'exercice précédent pour faire varier la couleur avec le mode RGB.

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