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.
import random
ResponderExcluir# Retorna a combinação completa de 6 valores, aleatórios e diferentes entre si.
def combinacao():
d1 = random.randrange(1, 56)
d2 = random.randrange(d1 + 1, 57)
d3 = random.randrange(d2 + 1, 58)
d4 = random.randrange(d3 + 1, 59)
d5 = random.randrange(d4 + 1, 60)
d6 = random.randrange(d5 + 1, 61)
return d1, d2, d3, d4, d5, d6
while(True):
print("\nGerando uma combinação para a Mega Sena...\n")
print(" Combinação gerada: ", combinacao() )
if(input("\nDigite 0 para continuar: ") != "0"):
break
def megasena():
ResponderExcluirn1 = random.sample(range(1,61),6)
return n1
megasena()
print('jogo: ',megasena())
Eu nao entendi a pergunta, fiquei chateado
ResponderExcluirimport random
ResponderExcluirprint("Numeros aleatorios da MEGA.\n")
for i in range(1,7):
print("numero: ",random.randint(1,60))
impor random
ResponderExcluirprint("Numeros aleatorios da MEGA.\n")
continuar=1
while continuar:
for i in range(1,7):
print("numero: ",random.randint(1,60))
continuar=int(input("Novo jogo? 1-SIM, 2-NAO \n"))
está errado esse codigo
ExcluirObrigado! Me ajudou muito.
ResponderExcluirmuito obrigado ajudou muito
ResponderExcluir# -*- coding: cp1252 -*-
ResponderExcluirfrom random import randint
# CRIANDO UM JOGO PARA A MEGA-SENA
sorteada = 0
dezena = randint(1, 60)
for i in range(1, 7) :
sorteada = randint(1, 60)
if sorteada != dezena :
dezena = sorteada
print("DEZENA ", i, ": ", dezena)
Não consegui resolver o desafio, então agradeço as resoluções dos (as) colegas, foram ótimas. Espero ter um pensamento assim para resolver problemas de programação futuros
ResponderExcluiresqueceram de falar do SAMPLE. Esta função gerar valores aleatória não repetitivos. Esta função recebe dois argumentos, início e fim. e excelente para quem quer sequencia de números não repetidos.
ResponderExcluirExercí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.
from random import sample
jogos = int(input('Digite o número jogos quer fazer? '))
for n in range(jogos):
print(f'\nJOGO{n+1} - ',end='')
for jogo in sorted(sample(range(1,61),6)):
print(jogo,end=' ' )
Digite o número jogos quer fazer? 5
JOGO1 - 4 6 16 18 45 48
JOGO2 - 15 41 48 55 59 60
JOGO3 - 2 25 26 28 43 53
JOGO4 - 1 7 13 28 33 47
JOGO5 - 10 30 34 39 51 52
import random
ResponderExcluirx = random.sample(range(1,60),6)
print(x)
from random import randint
ResponderExcluirfrom time import sleep
lista = list()
jogos = list()
print('_' * 30)
print(' JOGA NA MEGA SENA ')
print('_' * 30)
quant = int(input('Quantos jogos você quer sorteie? '))
tot = 1
while tot <= quant:
cont = 0
while true:
num = randint(1, 60)
if num not in lista:
lista.append(num)
cont += 1
if cont >= 6:
break
lista.sort()
jogos.append(lista[:])
lista.clear()
tot += 1
print('_' * 3, f' SORTEANDO {quant} JOGOS ', '-=' * 3)
for i, l in enumerate(jogos):
print(f'jogo {i+1}: {l}')
sleep(1)
print('-=' * 5, '< BOA SORTE! >', '-=' * 5)
from random import randint
ResponderExcluirfrom time import sleep
lista = list()
jogos = list()
print('_' * 30)
print(' JOGA NA MEGA SENA ')
print('_' * 30)
quant = int(input('Quantos jogos você quer sorteie? '))
tot = 1
while tot <= quant:
cont = 0
while true:
num = randint(1, 60)
if num not in lista:
lista.append(num)
cont += 1
if cont >= 6:
break
lista.sort()
jogos.append(lista[:])
lista.clear()
tot += 1
print('_' * 3, f' SORTEANDO {quant} JOGOS ', '-=' * 3)
for i, l in enumerate(jogos):
print(f'jogo {i+1}: {l}')
sleep(1)
print('-=' * 5, '< BOA SORTE! >', '-=' * 5)
import random
ResponderExcluird1 = random.randrange(1, 10)
d2 = random.randrange(11, 20)
d3 = random.randrange(21, 30)
d4 = random.randrange(31, 40)
d5 = random.randrange(41, 50)
d6 = random.randrange(51, 60)
print(d1, d2, d3, d4, d5, d6)
import random
ResponderExcluirdef sorteio():
d1 = random.randint(1,60)
d2 = random.randint(1,60)
while d2 == d1:
d2 = random.randint(1,60)
d3 = random.randint(1,60)
while (d3 == d2) or (d3 == d1):
d3 = random.randint(1,60)
d4 = random.randint(1,60)
while (d4 == d3) or (d4 == d2) or (d4 == d1):
d4 = random.randint(1,60)
d5 = random.randint(1,60)
while (d5 == d4) or (d5 == d3) or (d5 == d2) or (d5 == d1):
d5 = random.randint(1,60)
d6 = random.randint(1,60)
while (d6 == d5) or (d6 == d4) or (d6 == d3) or (d6 == d2) or (d6 == d1):
d6 = random.randint(1,60)
return d1,d2,d3,d4,d5,d6
while True:
print(sorteio())
c = input("Digite 0 para parar ou qualquer outro valor para continuar:")
if c == "0":
break
else:
continue