Tutorial anterior: Como criar, importar e usar Módulos
Veja também: Como entrar no mercado de trabalho Python
Números Aleatórios - Por que usar ?
A utilidade de se gerar números aleatórios, são enormes.Um exemplo bem claro e muito utilizado, são em jogos.
Rolar os dados, escolher inimigos e personagens aleatoriamente, localização nos mapas, alguns games ficam 'sorteando' coisas (skins, gemas, poder, equipamentos etc), tudo isso através de números aleatórios.
Já perdeu a senha ou fez algum cadastro que necessitava receber um código numérico ou alfanumérico (tipo, 23&6342h) em seu e-mail ou via SMS? Pois é, aquele código é gerado aleatoriamente.
Muitas vezes, para fazer simulações, principalmente científicas e de outros cunhos acadêmicos, é necessário usar uma enormidade de números aleatórios.
Se já teve uma cadeira de Probabilidade e Estatística na faculdade, sabe que se usa bastante números aleatórios.
São um dos conceitos mais importantes no mundo da computação, e vamos aprender agora a usar a biblioteca random (random module) em Python.
Gerar Número Inteiro Aleatório: A Função randint
Primeiro, vamos aprender como gerar um número, aleatoriamente, que seja um inteiro.Para isso, vamos usar a função randint, da biblioteca padrão do Python, a random. Ou sej, bem no início, devemos importar esse módulo:
import random
Agora, vamos usar a randint para gerar um número.
Essa função tem dois parâmetros, vamos chamar de inicio e fim:
random.randint(inicio, fim)
Essa função retorna um número inteiro de 'inicio' até 'fim' (inclusive eles).
Por exemplo:
- randint(1,10): pode gerar qualquer número do 1 até o 10
- randint(1,1000): pode resultar qualquer número 1,2, 3, ..., 100
Exemplo de uso da função randint()
Crie um programa em Python que simula o resultado de um dado, ou seja, gera números aleatórios de 1 até 6, quantas vezes o usuário desejar.Como explicado, a primeira coisa é importar a biblioteca random, padrão do Python. Depois, simplesmente usar a função randint com 1 e 6 como argumentos, veja como fica:
import random
continuar=1
while continuar:
print("Número aleatório gerado:", random.randint(1,6))
continuar=int(input("Gerar novamente?\n1.Sim\n0.Não\n")
Definindo Melhor o Intervalo: randrange()
A função randrange é bem similar a função range (leia novamente esse tutorial para relembrar), exatamente a mesma maneira de se usar os parâmetros, a diferença que ela vai retornar apenas um valor.- Um argumento:
Por exemplo:
random.randrange(5) - Pode retornar:0, 1, 2, 3 ou 4
- Dois argumentos:
Por exemplo:
random.randrange(1,5) - Pode sair:1, 2, 3 ou 4
- Três argumentos:
Por exemplo:
random.randrange(0,10,2) - Vai gerar uma dos seguintes números: 0, 2, 4, 6 ou 8 (ou seja, todos os pares de 0 até 8).
Para gerar todos os números múltiplos de 3 menores que 100, fazemos:
random.randrange(0, 101, 3) : 3, 6, 9, ..., 99
Gerar Número Aleatório Decimal: random()
Nos exemplos anteriores, as funções geram e recebem apenas números inteiros, ou seja, não servem para se trabalhar com números decimais.Mas, e se a gente quiser um número quebrado aleatório?
Aí usamos a função random(), ela não recebe nenhum argumento.
Usou ela, então te retorna decimal de 0.0 até 1.0
Basta fazer: random.random() e terá seu número quebrado aleatório.
Definir Aleatório Flutuante: função uniform()
Existe ainda mais uma função parar gerar valores flutuantes de maneira aleatória, que é através da função uniform().Esta função recebe dois argumentos, um valor de início e outro final, podem ser valores float e te retorna um float aleatório.
Por exemplo, vamos supor que você é professor, tem que entregar a nota de 200 alunos e está totalmente sem saco.
Então você decide que vai dar notas aleatórias, de 5.0 até 10.0
Basta usar a função uniform:
random.uniform(5.0 , 10.0)
Pronto, ela vai te retornar uma nota rapidinho :D
Agora é curtir suas férias.
Caso tenha medo que algum aluno reclame, é só dizer 'olha, posso até recorrigir sua prova, mas se eu encontrar mais erros, eu abaixo sua nota).
Exercício Proposto
Crie um script em Python que gere 6 números aleatórios para a Mega-Sena (neste jogo, você pode escolher dezenas de 1 até 60). Não pode repetir dezena.Deixe no comentário sua solução.
