random — gera números aleatórios

Este módulo implementa um gerador de números pseudoaleatórios (PRNG). O PRNG é um LCG de 32 bits no estilo Yasmarang; na primeira importação, ele obtém uma semente de 32 bits da mesma fonte de hardware que os.urandom() usa, e cada número subsequente é uma função determinística dessa semente.

Aviso

A saída não é criptograficamente segura – o algoritmo é previsível a partir de uma sequência curta de saída, e a semente inicial carrega apenas 32 bits de entropia. Para material de chaveamento, tokens de sessão, salts de senha ou qualquer outro uso sensível à segurança, chame os.urandom() em vez disso.

Nota

A seguinte notação é usada para intervalos:

  • () são colchetes de intervalo aberto e não incluem seus extremos. Por exemplo, (0, 1) significa maior que 0 e menor que 1. Em notação de conjuntos: (0, 1) = {x | 0 < x < 1}.

  • [] são colchetes de intervalo fechado que incluem todos os seus pontos-limite. Por exemplo, [0, 1] significa maior ou igual a 0 e menor ou igual a 1. Em notação de conjuntos: [0, 1] = {x | 0 <= x <= 1}.

Funções para inteiros

random.getrandbits(n: int) int

Retorna um inteiro com n bits aleatórios (0 <= n <= 32).

random.randint(a: int, b: int) int

Retorna um inteiro aleatório no intervalo [a, b].

random.randrange(start: int, stop: int | None = None, step: int = 1) int

A primeira forma retorna um inteiro aleatório do intervalo [0, stop). A segunda forma retorna um inteiro aleatório do intervalo [start, stop). A terceira forma retorna um inteiro aleatório do intervalo [start, stop) em passos de step. Por exemplo, chamar randrange(1, 10, 2) retornará números ímpares entre 1 e 9, inclusive.

Funções para números de ponto flutuante

random.random() float

Retorna um número de ponto flutuante aleatório no intervalo [0.0, 1.0).

random.uniform(a: float, b: float) float

Retorna um número de ponto flutuante aleatório N tal que a <= N <= b para a <= b, e b <= N <= a para b < a.

Outras Funções

random.seed(n: int | None = None, /) None

Inicializa o módulo gerador de números aleatórios com a semente n, que deve ser um inteiro. Quando nenhum argumento (ou None) é passado, o PRNG é re-semeado a partir da mesma fonte específica da porta que os.urandom() usa.

random.choice(sequence: Any) Any

Escolhe e retorna um item aleatoriamente de sequence (tupla, lista ou qualquer objeto que suporte a operação de subscrito).