Python: Le hasard

Le hasard joue un rôle crucial dans de nombreux domaines de la programmation, de la simulation scientifique aux jeux, en passant par la sécurité informatique et le choix de contenus personnalisés. Python, grâce à son module random, offre un ensemble riche et facile à utiliser de fonctionnalités qui permettent de manipuler le hasard de manière efficace. Cet article explore les fonctionnalités de base de Python pour générer des nombres aléatoires et sélectionner des éléments au hasard d'une liste, démontrant ainsi la puissance et la flexibilité du langage pour répondre à ces besoins.

    3ttr
  • Exploration

Utiliser le hasard en programmation va permettre de générer de nombres aléatoires et de sélectionner aléatoirement des éléments dans des listes.

Le module random

Au cœur de la manipulation du hasard en Python se trouve le module random. Ce module implémente des générateurs de nombres pseudo-aléatoires.

Aléatoire signifie "au hasard". On dit pseudo-aléatoire parce qu'il est difficile pour une ordinateur de générer un nombre qui soit vraiment aléatoire.

Pour commencer à l'utiliser, il suffit d'importer le module dans votre script Python :

import random

Générer des nombres aléatoires

La fonction la plus élémentaire du module random est random.random(), qui génère un nombre flottant aléatoire compris entre 0.0 et 1.0. Cette fonction peut servir de base pour créer des nombres aléatoires dans n'importe quel intervalle.

Pour obtenir un entier aléatoire dans un intervalle spécifié, random.randint(a, b) est utilisée, où a et b sont les bornes de l'intervalle (inclusives).

# Génère un entier aléatoire entre 1 et 10
nombre_aleatoire = random.randint(1, 10)
print(nombre_aleatoire)

Sélectionner un élément au hasard d'une liste

La sélection aléatoire d'éléments dans une liste est une opération courante, utile dans de nombreux contextes comme la création de jeux, le tirage au sort, ou la distribution de tâches. Python rend cette tâche particulièrement simple avec la fonction random.choice(sequence), où sequence est une liste (ou tout autre type de séquence) d'où un élément sera choisi aléatoirement.

# Liste d'éléments
elements = ['Pierre', 'Papier', 'Ciseaux']

# Sélectionne un élément au hasard
choix = random.choice(elements)
print(choix)

Applications pratiques

Simulation et modélisation

Le module random est largement utilisé dans la simulation et la modélisation, permettant de reproduire des phénomènes naturels, économiques ou sociaux avec une composante aléatoire.

Jeux

De la génération de mondes aléatoires à la décision des actions des personnages non-joueurs, le hasard est essentiel pour créer des expériences de jeu variées et imprévisibles.

Sécurité informatique

La génération de nombres aléatoires est cruciale pour la création de clés cryptographiques sécurisées, garantissant ainsi la confidentialité et l'intégrité des données.

Bonnes pratiques

Bien que le module random soit puissant, il génère des nombres pseudo-aléatoires basés sur un algorithme déterministe. Pour des applications nécessitant un haut degré de sécurité (comme la cryptographie), il est recommandé d'utiliser le module secrets, conçu spécifiquement pour générer des nombres aléatoires de manière plus sécurisée.

Conclusion

Que vous développiez des applications scientifiques, des jeux, ou des systèmes sécurisés, la capacité de générer des nombres aléatoires et de sélectionner des éléments au hasard dans des listes est un outil précieux. Le module random de Python offre une interface simple et puissante pour intégrer ces fonctionnalités dans vos programmes, rendant le hasard à la fois accessible et contrôlable.

Exercices

Exercices sur random.randint et random.choice en Python

Voici 15 exercices pour apprendre à utiliser les fonctions randint et choice du module random. Ces exercices sont progressifs et adaptés à des élèves de secondaire.


Exercices de base : Générer des nombres aléatoires

  1. Nombre aléatoire simple
    Écris un programme qui génère un nombre entier aléatoire entre 1 et 10 et l'affiche.

  2. Pair ou impair ?
    Génère un nombre aléatoire entre 1 et 100, puis indique s’il est pair ou impair.

  3. Jeu du devin
    Génère un nombre aléatoire entre 1 et 20. L'utilisateur doit deviner ce nombre. Indique s'il est trop haut ou trop bas après chaque tentative.

  4. Évaluation de mathématiques
    Génère deux nombres aléatoires entre 1 et 10 et demande à l'utilisateur de calculer leur produit. Vérifie la réponse.

  5. Moyenne de nombres aléatoires
    Génère 5 nombres aléatoires entre 1 et 50, affiche-les, puis calcule leur moyenne.


Exercices intermédiaires : Manipuler des listes avec choice

  1. Tirage au sort simple
    Crée une liste de 5 prénoms (au choix) et utilise random.choice pour afficher un prénom tiré au hasard.

  2. Tirage de plusieurs éléments
    Crée une liste de 10 objets (par exemple : "stylo", "livre", "clavier", etc.). Affiche 3 objets choisis au hasard (sans gestion de doublons pour l'instant).

  3. Mot aléatoire
    Crée une liste de mots (exemple : ["chien", "chat", "oiseau", "poisson"]) et génère une phrase en ajoutant un mot aléatoire à "J'ai vu un(e) ...".

  4. Générateur de menu
    Crée trois listes : une pour les entrées, une pour les plats principaux et une pour les desserts. Choisis aléatoirement un élément dans chaque liste pour créer un menu.

  5. Roulette des couleurs
    Crée une liste contenant des couleurs (rouge, bleu, vert, jaune, etc.). Simule une roulette qui affiche une couleur au hasard à chaque tour.


Exercices avancés : Combiner randint et choice

  1. Quiz avec questions aléatoires
    Crée une liste contenant des questions simples (exemple : "Quelle est la capitale de la France ?", "Combien font 7 + 5 ?"). Utilise choice pour poser une question aléatoire.

  2. Simulation de dé
    Simule un lancer de dé à 6 faces avec randint. Répète l'expérience 10 fois et affiche le nombre de fois que chaque face apparaît.

  3. Numéro de loto
    Génère 6 nombres aléatoires entre 1 et 49 pour simuler un tirage de loto. Affiche les résultats triés.

  4. Bataille de dés
    Simule un jeu entre deux joueurs lançant chacun un dé (valeurs entre 1 et 6). Celui qui a la valeur la plus haute gagne. En cas d'égalité, recommence.

  5. Code couleur aléatoire
    Crée un générateur de couleurs en format hexadécimal. Pour cela, génère 6 valeurs aléatoires entre 0 et 15 (représentées par des chiffres ou des lettres de A à F).


# Exercice : Création d'un cadavre exquis aléatoire

L'objectif de cet exercice est de créer des phrases aléatoires et amusantes en utilisant le concept des cadavres exquis. Chaque phrase sera composée de quatre parties : un sujet, un verbe, un complément et une circonstance, choisis aléatoirement dans des listes pré-définies.


Listes pré-remplies

Liste des sujets

  • Le chat
  • Un dinosaure
  • Une sorcière
  • Mon voisin
  • Une étoile
  • Un robot
  • La lune
  • Un ninja

Liste des verbes

  • casse
  • mange
  • crie
  • peint
  • saute
  • écrit
  • découvre
  • détruit
  • fabrique

Liste des compléments

  • un gâteau
  • une fusée
  • un arc-en-ciel
  • des bonbons
  • un château
  • un trésor
  • une forêt
  • un secret

Liste des circonstances

  • dans le salon
  • sur la Lune
  • en chantant
  • avec un crocodile
  • sous la pluie
  • à minuit
  • devant la classe
  • en pyjama

Énoncé

  1. Crée un programme qui génère des phrases aléatoires en utilisant les listes ci-dessus.
    À chaque exécution, le programme doit choisir :

    • un sujet dans la liste des sujets,
    • un verbe dans la liste des verbes,
    • un complément dans la liste des compléments,
    • et une circonstance dans la liste des circonstances.

    Assemble les éléments pour former une phrase complète. Par exemple :
    "Un dinosaure peint un arc-en-ciel sous la pluie."

  2. Affiche cinq phrases différentes en exécutant une boucle.

Ces exercices permettent de travailler à la fois sur la compréhension des fonctions de random, sur les structures conditionnelles, les boucles et les manipulations de listes.