Articles

Python casuale randrange() e randint() per generare un numero intero casuale all’interno di un intervallo

In questo articolo, vedremo come utilizzare Python random.randrange() e random.randint() funzioni per generare un numero casuale. Usando le funzionirandrange() erandint() di un modulo casuale possiamo generare un numero intero casuale all’interno di un intervallo. Ad esempio, si desidera generare un numero intero casuale compreso tra 0 e 9, quindi è possibile utilizzare queste funzioni.

Obiettivi di questa lezione. In questa lezione, imparerai come:

  • Generare un numero intero casuale all’interno di un intervallo utilizzando randrange() e randint()
  • Generare il numero intero casuale con le specifiche di lunghezza solo
  • Generare un numero intero casuale multiplo di n
  • Creare un elenco di numeri interi casuali
  • Generare un sicuro numero intero casuale
  • Creare una casuali multidimensionali array di numeri interi casuali

bibliografia

  • Risolvere il Python Casuale la Generazione dei Dati di Esercizio e di Dati Casuali Generazione Quiz
  • Anche, leggi Lavorare con dati casuali in Python (Guida completa)

Come usare random.randint ()

Sintassi:

random.randint(start, stop)

Questa funzione restituisce un intero casuale all’interno di un intervallo. Questa funzione richiede due parametri. Entrambi sono obbligatori. Ad esempio,random.randint(0, 100) restituirà qualsiasi numero casuale compreso tra 0 e 100.

Il randint(start, stop) include sia i numeri di avvio che di arresto durante la generazione di interi casuali. Genererà un numero casuale dall’intervallo compreso.

casuale.randint () esempi di generazione di numeri interi casuali

Output:

Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89

Nota: non è possibile utilizzare il numero float inrandint(). Genererà un ValueError: non-integer arg 1 se si utilizzano valori diversi da un numero intero.
Fare riferimento a questa guida per generare un numero float casuale all’interno di un intervallo.

Come usare casuale.randrange()

Vediamo prima la sintassi

random.randrange(start, stop)

Questa funzione restituisce un numero intero selezionato casualmente da range(start, stop, step). Questa funzione richiede tre parametri. Su tre parametri, due parametri sono opzionali. ad esempio, start e step sono i parametri opzionali.

  • L’argomentostart è il numero iniziale in un intervallo casuale. cioè, limite inferiore. Il valore predefinito di start è 0 se non specificato.
  • L’argomentostop è l’ultimo numero di un intervallo casuale. l’argomentostop è il limite superiore.
  • Il step è una differenza tra ogni numero nella sequenza. Il passo è parametri opzionali. Il valore predefinito di step è 1 se non specificato.

casuale.randrange () Esempi di generazione di interi casuali all’interno di un intervallo

Qui nell’esempio seguente, stiamo cercando di stampare un int casuale in un determinato intervallo. Questo esempio mostra tutte le varianti della funzionerandom.randrange().

Output:

Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180

Nota: non è possibile utilizzare il valore float randrange(). Genererà un ValueError: non-integer arg 1 for randrange() se hai usato valori diversi da un numero intero.

Genera il numero intero casuale di una lunghezza specifica

Cosa succede se si desidera generare un numero casuale di lunghezzan? Ad esempio, si desidera generare un numero casuale di lunghezza 4. Vediamo l’esempio per generare il numero casuale di lunghezza 4 usando random.randrange().

Output:

First random number of length 4 is 1931Second random number of length 4 is 5715

Nota: Come puoi vedere impostiamo un inizio a 1000 e ci fermiamo a 10000 perché vogliamo generare il numero casuale di lunghezza 4 (da 1000 a 9999).

Genera un numero intero casuale multiplo di n

In questo esempio, genereremo un numero casuale tra x e y, che è un multiplo di 3 come 3, 6, 39, 66.

import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)

Output:

Random number multiple of 3 is 264

Genera un numero intero negativo casuale

Vediamo come generare un numero intero negativo casuale tra -60 e -6.

import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)

Output:

Random negative integer between -60 to -6-49

Genera un numero intero casuale positivo o negativo

import randomnum = random.randint(-10, 10)print(num)

Genera casualmente 1 o -1

import randomnum = random.choice()print(num)

Nota: abbiamo usato casuale.scelta () per scegliere un singolo numero dalla lista dei numeri. Qui la nostra lista è

Generare un elenco di numeri interi casuali

In questa sezione, vedremo come generare più numeri casuali. A volte abbiamo bisogno di un elenco di esempio per eseguire test o qualsiasi operazione. In questo caso, invece di crearlo manualmente, possiamo creare una lista con numeri interi casuali usando randint() o randrange(). In questo esempio, vedremo come creare un elenco di 10 numeri interi casuali.

Uscita:

Printing list of 10 random numbers

In questo esempio, c’è la possibilità di ottenere un numero duplicato in un elenco

Creare un elenco di numeri casuali senza duplicati

Nell’esempio precedente, c’è la possibilità di ottenere un numero casuale duplicato in un elenco. Se si desidera assicurarsi che ogni numero nell’elenco sia univoco, esiste un modo semplice per generare un elenco di numeri casuali univoci. Usando casuale.sample () possiamo creare un elenco di numeri casuali unici.

  • random.sample() restituisce una lista campionata di numeri casuali selezionati all’interno di un intervallo di valori.
  • Non ripete mai l’elemento, in modo da poter ottenere un elenco di numeri casuali senza duplicati

Vediamo come generare 10 numeri interi casuali dall’intervallo 0 a 1000.

Uscita:


Se si desidera che ogni numero multiplo di n, quindi utilizzare il step parametro range() funzione. Ad esempio, si desidera un elenco di 10 numeri casuali, ma ogni intero in un elenco deve essere multiplo di 5 quindi utilizzare random.sample(range(0, 1000, 5), 10)

Per saperne di più: casuale.sample()

Ordina elenco numeri casuali

Se vuoi ordinare un elenco di numeri interi casuali in ordine crescente usa la funzione sort()

Output:

Before sorting random integers listAfter sorting random integers list

Genera un numero intero casuale sicuro

Sopra tutti gli esempi non sono crittograficamente sicuri. Il generatore casuale crittograficamente sicuro genera numeri casuali utilizzando metodi di sincronizzazione per garantire che non ci siano due processi in grado di ottenere lo stesso numero allo stesso tempo. Se si producono numeri casuali per un’applicazione sensibile alla sicurezza, è necessario utilizzare questo approccio.

Se si utilizza la versione Python inferiore a 3.6 e si desidera generare interi casuali crittograficamente sicuri, utilizzare le funzioni random.SystemRandom().randint()o random.SystemRandom().randrange(). Fare riferimento a Come proteggere i dati casuali in Python.

Esempio:

Uscita:

Secure random integer is 30Secure random integer is 162

Se si utilizza la versione Python superiore a 3.6 è possibile utilizzare il modulo secrets per generare un numero intero casuale sicuro.

import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)

Output:

Random integer generated using secrets module is 8
  • Proteggi i dati casuali in python.
  • Python secrets module

Crea un array multidimensionale casuale di interi casuali

Il modulo NumPy di Python ha un pacchettonumpy.random per generare dati casuali. Per creare una matrice multidimensionale casuale di numeri interi all’interno di un determinato intervallo, possiamo usare i seguenti metodi NumPy:

Ora, vediamo l’esempio.

Generare un 4 x 4 matrice di numeri interi tra 10 e 50, esclusivo:

Uscita:

4 x 4 array of ints between 10 and 20 inclusive ]

Generare una matrice 5 x 3 di int tra 60 e 100, compreso:

Uscita:

3 x 5 array of ints between 10 and 20 exclusive ]

Punti da ricordare a proposito di randint() e randrange()

  • Usa randint() quando si desidera generare un numero casuale da un intervallo inclusivo.
  • Utilizzare randrange() quando si desidera generare un numero casuale all’interno di un intervallo specificando il valore del passo. Produce un numero casuale da un intervallo esclusivo.

Dovresti essere a conoscenza di alcuni vincoli di valore di una funzionerandrange().

  • Ilrandint() randrandrange() funziona solo con numeri interi. Non è possibile utilizzare numeri float.
  • Se si utilizzano numeri float, verrà generato ValueError: non-integer arg 1 for randrange(). Fare riferimento a questo articolo per generare un numero float casuale tra all’interno di un intervallo.
  • Il passo non deve essere 0. Se è impostato su 0, si otterrà un ValueError: zero step for randrange()

L’inizio non dovrebbe essere maggiore di stop se si utilizzano tutti i numeri positivi. Se erroneamente si imposta start maggiore di stop si otterrà un ValueError: empty range for randrange()

import randomprint(random.randrange(100, 10, 2))

Output:

ValueError: empty range for randrange()

Ma, è anche possibile impostare il valore di avvio maggiore di stop se si utilizza il valore di passo negativo.

import randomprint(random.randrange(100, 10, -2))

Output:

60

Quindi cosa ne pensi?

Voglio sentire da voi. Cosa ne pensi di questo articolo su randint()erandrange()? O forse ho perso uno degli usi di queste due funzioni. In entrambi i casi, fatemelo sapere lasciando un commento qui sotto.

Inoltre, prova a risolvere il seguente esercizio e quiz per avere una migliore comprensione del lavoro con dati casuali in Python.

  • Python random data generation Esercizio per praticare e padroneggiare le tecniche di generazione di dati casuali in Python.
  • Python casuale generazione di dati Quiz per testare i concetti di generazione di dati casuali.