python offre random pour les usages généraux, et secrets pour la sécurité (mots de passe, jetons).
objectifs
- générer des nombres ou choix aléatoires
- mélanger des séquences
- générer des secrets sûrs
explication détaillée
random.random(): float 0.0–1.0random.randint(a,b): int inclusifrandom.choice(seq),random.shuffle(seq)secrets.token_hex(n),secrets.choice(seq)pour la crypto
exemples exécutables
import random, secrets
print(random.random())
print(random.randint(1, 6))
print(random.choice(["pierre", "papier", "ciseaux"]))
deck = list(range(1, 11))
random.shuffle(deck)
print(deck)
# mot de passe sûr
pwd = secrets.token_urlsafe(12)
print(pwd)
bonnes pratiques
- pour la sécurité, utiliser
secretset pasrandom - fixer la seed (
random.seed) uniquement pour reproduire des résultats - ne pas exposer les valeurs générées pour la sécurité
pièges courants
- croire que
randomest sûr pour la crypto - oublier que
shufflemodifie la liste en place
exercices
- simuler un lancer de dé 100 fois et compter les résultats.
- mélanger une liste de noms.
- générer un jeton hexadécimal de 32 octets.