random — gerar números aleatórios¶
Este módulo implementa um gerador de números pseudoaleatórios (PRNG). O PRNG é um LCG de 32 bits estilo Yasmarang; na primeira importação, obtém uma semente de 32 bits da mesma fonte de hardware que os.urandom() utiliza, e cada número subsequente é uma função determinística dessa semente.
Aviso
O resultado não é criptograficamente seguro – o algoritmo é previsível a partir de uma curta sequência de saída, e a semente inicial contém apenas 32 bits de entropia. Para material de chaveamento, tokens de sessão, salts de palavras-passe ou qualquer outro uso sensível à segurança, utilize os.urandom() em alternativa.
Nota
A seguinte notação é utilizada para intervalos:
() são parênteses de intervalo aberto e não incluem os 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 parênteses 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.randrange(start: int, stop: int | None = None, step: int = 1) int¶
A primeira forma devolve um inteiro aleatório do intervalo [0, stop). A segunda forma devolve um inteiro aleatório do intervalo [start, stop). A terceira forma devolve um inteiro aleatório do intervalo [start, stop) em passos de step. Por exemplo, chamar
randrange(1, 10, 2)devolverá números ímpares entre 1 e 9 inclusive.
Funções para números de vírgula flutuante¶
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 é resemeado a partir da mesma fonte específica da plataforma queos.urandom()utiliza.
- random.choice(sequence: Any) Any¶
Escolhe e devolve um elemento aleatório de sequence (tuplo, lista ou qualquer objeto que suporte a operação de subscrito).