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
ResponderExcluirimport 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
Existe um meio de coletar todos os 3 milhoes e meio dos numeros na loto facil e fazer rastreamento de cada volante que sai por linha deste volante uzando este desenvolvimento?
ResponderExcluirSim, tranquilamente, em pouquíssimos segundos.
Excluir