Ir ao conteúdo
  • Cadastre-se

Python Desafio da MegaSena, preciso ordenar os números printados aleatórios e conferir


Posts recomendados

Boa noite,  poderiam me auxiliar a corrigir meu código, preciso fazer com que ele bote em ordem os números sorteados e compare com os jogados (user)

import random

sorteio = 0

user = 6,25,35,43,46,53



while True:

    num1= random.randrange(1, 60)

    num2= random.randrange(1, 60)

    num3= random.randrange(1, 60)

    num4= random.randrange(1, 60)

    num5= random.randrange(1, 60)

    num6= random.randrange(1, 60)

    numsorteado = num1, num2, num3, num4, num5, num6

    if num1 != num2 and num2!= num3 and num3 != num4 and num5 != num6 and num6 != num1:

        print (numsorteado)

    else:

        if numsorteado != user:

            print("Tentando novamente!")

            sorteio+=1

            print(sorteio)

        elif numsorteado == user:

            print((numsorteado),"parabén você ganhou",(user))

            break

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

@Barea

Se você precisa de vários valores e nenhum deles precisa de um nome isso significa que você precisa de uma array. Isso é o início de algoritmos, vá estudar.

se você tem uma repetição da mesma função continuamente é porque precisa de um laço, nesse caso o for.

numeros = []
for x in range(6):
	numeros.append(random.randint(1, 60))

repare que, nesse caso,  o valor que x assume durante o loop é inútil nesse código, logo você pode fazer assim:

numeros = []
for _ in range(6):
	numeros.append(random.randint(1, 60))

agora pense, porque tenho que criar uma lista vazia para só depois criar valores e inserir nela? não seria melhor se fosse possível já inserir na lista? Sim!

numeros = [random.randint(1, 60) for _ in range(6)]

no mais sua lógica está toda errada.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Swalls Obrigado pelos conselhos, mas dei uma estudada a mais e cheguei a esse código a um tempo atrás

import random

contador = 0

numerosJogados =[]



for n in range(0,6):

    user=int(input(f'Digite o {n+1}º numero: '))

    numerosJogados.append(user)



numerosJogados.sort()

while True:

    numerosLoteria = []

    while len(numerosLoteria) != 6:

        numsorteado = random.randrange(1, 60)

        if numsorteado not in numerosLoteria:

            numerosLoteria.append(numsorteado)

   

    numerosLoteria.sort()



    print(f'Números jogados: {numerosJogados}')

    print(f'Números sorteados: {numerosLoteria}')



    contador += 1

    print(f'{contador} jogadas.')



    if numerosJogados == numerosLoteria:

        break

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Barea seu código entra em um loop infinito.

estude um pouco sobre compreensão de lista em python, dá para dominar em 1 dia e quando dominar vai conseguir realizar isso em segundos.

a função random.sample(lista,tamanho) te permite pegar uma lista de valores aleatórios de uma outra lista.

ex:

import random
#codigo
numerosjogados = sorted([int(input(f"Digite o {x+1}º numero: ")) for x in range(6)])
numerosloteria = sorted(random.sample([x for x in range(1,61)],6))

se printar, vai funcionar igual e consome menos recursos.
qualquer dúvida pode perguntar  ☺

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!