O módulo random do Python possui diversas funções para gerar números ale­a­tó­rios em di­fe­ren­tes formatos, desde números inteiros até números de vírgula flutuante, ou se­le­ci­o­nar elementos de listas.

O que é o módulo Python random?

O módulo Python random é uma bi­bli­o­teca integrada com a qual é possível gerar números ale­a­tó­rios e realizar operações ale­a­tó­rias nos programas. Dispõe de várias funções para gerar números pseu­do­a­le­a­tó­rios que podem ser uti­li­za­dos em muitos campos, desde a simulação até ao de­sen­vol­vi­mento de jogos e tarefas crip­to­grá­fi­cas.

Uma das suas ca­rac­te­rís­ti­cas im­por­tan­tes é a ca­pa­ci­dade de re­pro­du­ti­bi­li­dade. Ao es­pe­ci­fi­car um valor inicial ou semente, os re­sul­ta­dos da geração de números ale­a­tó­rios podem ser re­pli­ca­dos, o que é útil para realizar testes, ex­pe­ri­ên­cias e si­mu­la­ções que requerem dados ale­a­tó­rios con­sis­ten­tes.

Lista de funções do módulo random

O módulo random do Python contém di­fe­ren­tes métodos para gerar e processar números ale­a­tó­rios. A tabela a seguir resume suas funções e ca­rac­te­rís­ti­cas:

Nome da função Ex­pli­ca­ção
seed(a=None, version=2) Define o valor inicial (semente) para o gerador de números ale­a­tó­rios.
getstate() Retorna o estado atual do gerador de números ale­a­tó­rios como objeto.
setstate(state) Redefine o estado do gerador de números ale­a­tó­rios através de um objeto de estado.
getrandbits(k) Retorna um número inteiro com k bits.
randrange(start, stop, step) Cria um número inteiro aleatório dentro do intervalo es­pe­ci­fi­cado.
randint(a, b) Retorna um número inteiro aleatório dentro do intervalo es­pe­ci­fi­cado.
choice(seq) Retorna um elemento aleatório da sequência definida.
choices(population, weights=None, *, cum_weights=None, k=1) Cria uma lista com k elementos se­le­ci­o­na­dos ale­a­to­ri­a­mente da população; as pro­ba­bi­li­da­des podem ser es­pe­ci­fi­ca­das op­ci­o­nal­mente.
sample(k, population) Cria uma lista com k elementos se­le­ci­o­na­dos ale­a­to­ri­a­mente da população; sem du­pli­ca­dos.
shuffle(x) Mistura os elementos de uma lista numa ordem aleatória.
random() Retorne um número flutuante aleatório no intervalo de 0 a 1.
uniform(a, b) Retorna um número de ponto flutuante aleatório no intervalo es­pe­ci­fi­cado, incluindo os valores limite.
triangular(low, high, mode) Cria um número aleatório de ponto flutuante na dis­tri­bui­ção tri­an­gu­lar.
betavariate(alpha, beta) Retorna um número flutuante aleatório de uma dis­tri­bui­ção beta.
expovariate(lambd) Retorna um número flutuante aleatório de uma dis­tri­bui­ção ex­po­nen­cial.
gammavariate(alpha, beta) Cria um número flutuante aleatório de uma dis­tri­bui­ção gama.
gauss(mu, sigma) Retorna um número flutuante aleatório de uma dis­tri­bui­ção gaussiana.
lognormvariate(mu, sigma) Cria um número flutuante aleatório de uma dis­tri­bui­ção lo­ga­rít­mica normal.
normalvariate(mu, sigma) Retorna um número flutuante aleatório de uma dis­tri­bui­ção normal.
vonmisesvariate(mu, kappa) Retorna um número flutuante aleatório de uma dis­tri­bui­ção de Von Mises.
paretovariate(alpha) Retorna um número flutuante aleatório de uma dis­tri­bui­ção de Pareto.
weibullvariate(alpha, beta) Retorna um número flutuante aleatório de uma dis­tri­bui­ção de Weibull.

Se­le­ci­o­nar elementos ale­a­tó­rios de uma lista

Para se­le­ci­o­nar vários elementos ale­a­tó­rios de uma lista, pode utilizar a função choices(seq, k=n) do módulo aleatório do Python, em que n é o número de elementos ale­a­tó­rios desejados.

import random
# A list of elements
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

Neste exemplo, a função choices() é utilizada para se­le­ci­o­nar três elementos ale­a­tó­rios da lista my_list. Os re­sul­ta­dos são de­vol­vi­dos como uma lista de três elementos ale­a­tó­rios.

Misturar uma lista

A função shuffle() ordena os elementos das listas Python numa ordem aleatória.

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

Tenha em atenção que shuffle() altera a lista e não devolve uma nova. Após utilizar esta função, a lista original ficará numa ordem aleatória.

Es­ta­be­le­cer uma semente

Se utilizar random.seed() módulo random do Python para definir um valor de semente es­pe­cí­fico, o gerador de números ale­a­tó­rios começará a gerar números ale­a­tó­rios com base nessa semente. Ou seja, se definir o mesmo valor de semente pos­te­ri­or­mente, o mesmo conjunto de números ale­a­tó­rios será gerado na aplicação.

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

Depois de definir o valor inicial ou semente, são gerados e emitidos números ale­a­tó­rios. Se o valor da semente for re­de­fi­nido para o mesmo valor, os mesmos números ale­a­tó­rios serão gerados novamente. No código acima, a semente tem o valor 42, portanto, os números ale­a­tó­rios podem ser re­pro­du­zi­dos sempre que o valor da semente per­ma­ne­cer o mesmo.

Ir para o menu principal