Aleatório#
Introdução#
O módulo random fornece acesso ao módulo random do Python, que está disponível por defeito no VEXcode AIR. Estes métodos permitem gerar números aleatórios, números de ponto flutuante e valores a partir de listas ou intervalos — útil para adicionar imprevisibilidade a jogos, comportamentos e tomada de decisões autónomas. Para começar a utilizar estas funções, adicione import random no início do projeto.
Segue-se uma lista dos métodos disponíveis:
Geradores de números – Produzem directamente números ou bits aleatórios.
randint– Devolve um número inteiro aleatório entre dois valores (inclusive).uniform– Devolve um número de ponto flutuante aleatório entre dois valores.randrange– Devolve um número inteiro aleatório de um intervalo com um passo opcional.random– Devolve um número de ponto flutuante aleatório entre 0,0 (inclusive) e 1,0 (exclusive).getrandbits– Retorna um número inteiro com um número especificado de bits aleatórios.
Seleção – Escolha elementos aleatoriamente de sequências.
choice– Devolve um elemento aleatório de uma lista ou sequência não vazia.
Controlo de Estado – Gere ou inicializa o estado do gerador de números aleatórios.
seed– Define a semente para o gerador de números aleatórios para produzir resultados determinísticos.
Geradores de números#
randint#
randint devolve um número inteiro aleatório no intervalo de a (inclusive) a b (inclusive).
Usage:
random.randint(a, b)
Parâmetro |
Descrição |
|---|---|
|
Um número inteiro que representa o limite inferior inclusivo do intervalo. |
|
Um número inteiro que representa o limite superior inclusivo do intervalo. |
# Pick a number from 0 to 100
random_int = random.randint(0, 100)
controller.screen.print(random_int)
#random_int = (random integer between 0-100)
uniform#
uniform devolve um número de ponto flutuante aleatório entre start e end.
Usage:
random.uniform(start, end)
Parâmetro |
Descrição |
|---|---|
|
Um número de ponto flutuante ou inteiro que representa o limite inferior do intervalo. |
|
Um número de ponto flutuante ou inteiro que representa o limite superior do intervalo. |
# # Generate a random float between 5.0 and 10.0
random_uniform = random.uniform(5.0, 10.0)
controller.screen.print(random_uniform)
# random_uniform = (random float between 5.0 and 10.0)
randrange#
randrange devolve um número inteiro aleatório do intervalo especificado.
Usage:
random.randrange(start, stop, step)
Parâmetro |
Descrição |
|---|---|
|
Opcional. Um número inteiro que representa o valor inicial inclusivo do intervalo. O predefinido é 0. |
|
Um número inteiro que representa o valor final único do intervalo. |
|
Opcional. Um número inteiro que representa a diferença entre cada número do intervalo. O valor predefinido é 1. |
# Generate a random integer from
# 0 to 9 (exclusive of 10)
random_range = random.randrange(10)
controller.screen.print(random_range)
# random_range = (random integer from 0 to 9)
# Generate a random integer from
# 5 to 15 (exclusive of 15)
random_range = random.randrange(5, 15)
controller.screen.print(random_range)
# random_range = (random integer from 5 to 14)
random#
random returns a random float in the range 0.0 (inclusive) to 1.0 (exclusive).
Usage:
random.random()
Parâmetro |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Generate a random float between 0.0 and 1.0
random_float = random.random()
controller.screen.print(random_float)
# random_float = (random float between 0.0 and 1.0)
getrandbits#
getrandbits devolve um número inteiro com um número especificado de bits aleatórios.
Usage:
random.getrandbits(n)
Parâmetro |
Descrição |
|---|---|
|
Um número inteiro que representa a quantidade de bits aleatórios |
# Generate a random integer with 8 random bits
random_bits = random.getrandbits(8)
controller.screen.print(random_bits)
# random_bits = (random integer between 0 and 255)
Seleção#
choice#
choice chooses and returns one item at random from a sequence.
Usage:
random.choice(sequence)
Parâmetro |
Descrição |
|---|---|
|
Uma sequência não vazia (lista, tupla ou outro objeto indexável) a partir da qual é selecionado um elemento aleatório. |
# Choose a random number from a list
random_choice = random.choice([10, 20, 30, 40, 50])
controller.screen.print(random_choice)
# random_choice = (randomly chosen number from the list)
Controle estatal#
seed#
O comando seed inicializa o gerador de números aleatórios, definindo o seu estado para que se possam reproduzir resultados aleatórios.
Usage:
random.seed(a=None)
Parâmetro |
Descrição |
|---|---|
|
Opcional. O valor inicial. Pode ser um número inteiro, ponto flutuante, string, bytes ou array de bytes. Se |
random.seed(42)
# Always return the same results
print(random.randint(1, 10))
print(random.random())