Il modulo random in Python 🎲
Il modulo random di Python serve per generare numeri casuali o effettuare scelte casuali su insiemi di dati.
È molto usato in giochi, simulazioni, test, algoritmi probabilistici e attività didattiche.
Importazione del modulo
import random
Numeri casuali
random.random()
Genera un numero decimale casuale tra 0 e 1 (1 escluso):
x = random.random()
print(x)
Ristituisce un float.
Esempio di output: 0.37444887175646646
random.randint(a, b)
Genera un numero intero casuale tra a e b (inclusi):
n = random.randint(1, 6) # lancio di un dado
print(n)
Restituisce un int.
Esempio di output: 4
random.randrange(start, stop, step)
Simile a range, ma restituisce un valore casuale:
n = random.randrange(0, 10, 2)
print(n)
Restituisce un int compreso tra start e stop-1, con passo step.
Esempio di output: 6
Scelte casuali da liste
random.choice(lista)
Sceglie un elemento casuale:
colori = ["rosso", "verde", "blu"]
print(random.choice(colori))
Restituisce un singolo elemento dalla lista.
Esempio di output: verde
random.sample(lista, k)
Estrae k elementi distinti:
numeri = [1, 2, 3, 4, 5]
print(random.sample(numeri, 3))
Restituisce una lista di elementi distinti.
Esempio di output: [2, 5, 1]
random.choices(lista, k=...)
Estrae con possibilità di ripetizione:
print(random.choices(numeri, k=3))
Restituisce una lista di elementi, con possibili ripetizioni.
Esempio di output: [4, 2, 4]
Mescolare una lista
random.shuffle(lista)
Mescola la lista modificandola direttamente:
carte = [1, 2, 3, 4, 5]
random.shuffle(carte)
print(carte)
Restituisce None, la lista viene modificata in loco.
Esempio di output: [3, 1, 5, 2, 4]
Numeri casuali continui
random.uniform(a, b)
Numero decimale casuale tra a e b:
x = random.uniform(1.5, 3.5)
print(x)
Restituisce un float.
Esempio di output: 2.678934567890123
random.gauss(mu, sigma)
Numero casuale secondo una distribuzione normale:
x = random.gauss(0, 1)
print(x)
Restituisce un float.
Esempio di output: -0.3456789012345678
Riproducibilità: seed
random.seed(valore)
Imposta il seme per ottenere sempre gli stessi numeri casuali:
random.seed(42)
print(random.randint(1, 10))
Utile per debug e test.
Esempio completo
import random
studenti = ["Anna", "Luca", "Marco", "Sara"]
estratto = random.choice(studenti)
print("Studente estratto:", estratto)
Restituisce un singolo elemento dalla lista.
Esempio di output: Studente estratto: Marco
Quando usare random
- Giochi 🎮
- Simulazioni
- Estrazioni e sorteggi
- Algoritmi probabilistici
- Attività didattiche
📌 Nota: per applicazioni crittografiche non usare random, ma il modulo secrets.
Riepilogo delle funzioni principali
| Funzione | Estremo finale |
|---|---|
| randint(1, 50) | ✅ incluso |
| randrange(1, 51) | ✅ incluso |
| range(1, 50) | ❌ escluso |
| random() | 1 ❌ escluso |