Modulo Python random: panoramica delle funzioni

Il modulo Python random mette a tua disposizione una gran varietà di funzioni per la generazione di numeri casuali in diversi formati, dai numeri interi ai numeri a virgola mobile, fino alla selezione di elementi dalle liste.

Che cos’è il modulo Python random?

Il modulo Python random è una libreria integrata che ti permette di generare numeri casuali ed eseguire operazioni basate sulla casualità nei tuoi programmi. Esso comprende diverse funzioni per la generazione di numeri pseudo-casuali, che puoi utilizzare in molte applicazioni, dalla simulazione fino allo sviluppo di giochi, nonché per la criptografia.

Una caratteristica importante del modulo random è la sua ripetibilità. Definendo un valore iniziale o seed è possibile rendere riproducibile la generazione casuale. Questa possibilità è molto utile per eseguire test, esperimenti e simulazioni in cui servono dati casuali ma coerenti.

Lista delle funzioni del modulo random

Il modulo Python random contiene diversi metodi per la generazione e l’elaborazione di numeri casuali. La tabella seguente mostra una panoramica delle funzioni e delle loro caratteristiche:

Nome funzione Descrizione
seed(a=None, version=2) Definisce il valore iniziale (seed) per il generatore di numeri casuali.
getstate() Restituisce lo stato aggiornato del generatore di numeri casuali come oggetto.
setstate(state) Resetta lo stato del generatore di numeri casuali per mezzo di un oggetto di stato.
getrandbits(k) Restituisce un numero intero con k bit.
randrange(start, stop, step) Genera un numero intero casuale scelto nell’intervallo indicato.
randint(a, b) Restituisce un numero intero casuale nell’intervallo indicato.
choice(seq) Restituisce un elemento casuale scelto nella sequenza indicata.
choices(population, weights=None, *, cum_weights=None, k=1) Crea una lista con k elementi scelti casualmente nella popolazione; le probabilità possono essere indicate tra le opzioni.
sample(k, population) Genera una lista con k elementi scelti casualmente nella popolazione, senza duplicati.
shuffle(x) Rimescola gli elementi di una lista mettendoli in ordine casuale.
random() Restituisce un numero a virgola mobile casuale compreso fra 0 e 1.
uniform(a, b) Restituisce un numero a virgola mobile casuale nell’intervallo indicato, compresi i valori limite.
triangular(low, high, mode) Genera un numero a virgola mobile casuale nell’intervallo di distribuzione triangolare.
betavariate(alpha, beta) Restituisce un numero a virgola mobile casuale scelto in una distribuzione beta.
expovariate(lambd) Restituisce un numero a virgola mobile casuale scelto in una distribuzione esponenziale.
gammavariate(alpha, beta) Genera un numero a virgola mobile casuale scelto in una distribuzione gamma.
gauss(mu, sigma) Restituisce un numero a virgola mobile casuale scelto in una distribuzione gaussiana.
lognormvariate(mu, sigma) Genera un numero a virgola mobile casuale scelto in una distribuzione normale logaritmica.
normalvariate(mu, sigma) Restituisce un numero a virgola mobile casuale scelto in una distribuzione normale.
vonmisesvariate(mu, kappa) Restituisce un numero a virgola mobile casuale scelto in una distribuzione di von Mises.
paretovariate(alpha) Restituisce un numero a virgola mobile casuale scelto in una distribuzione di Pareto.
weibullvariate(alpha, beta) Restituisce un numero a virgola mobile casuale scelto in una distribuzione di Weibull.

Selezione casuale di elementi in una lista

Se vorresti selezionare più elementi casuali in una lista, puoi utilizzare la funzione choices(seq, k=n) del modulo Python random, dove n è il numero di elementi casuali desiderati.

import random
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_element)
python

In questo caso utilizziamo la funzione choices() per selezionare tre elementi casuali nella lista my_list. I risultati sono restituiti sotto forma di lista composta da tre elementi casuali.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

Mescolare una lista

La funzione shuffle() mette in ordine casuale gli elementi delle liste in Python.

import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
python

Ricorda che shuffle() modifica la lista stessa e non ne restituisce una nuova. Dopo l’uso di shuffle(), la lista originale si presenta con un ordine casuale.

Definizione di un seed

Se utilizzi la funzione random.seed() del modulo Python random per definire un valore seed specifico, il generatore di numeri casuali viene avviato e genera numeri casuali in base a questo seed. In pratica, impostando lo stesso valore seed in un momento successivo si ottiene la generazione dello stesso insieme di numeri casuali nella tua applicazione.

import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
python

Dopo aver impostato il valore seed, vengono generati ed emessi i numeri casuali. Quindi, impostando il seed sullo stesso valore, vengono generati nuovamente gli stessi numeri casuali. Nel nostro esempio, il seed ha valore 42. In questo modo i numeri casuali sono riproducibili utilizzando lo stesso valore seed.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top