Ir ao conteúdo

Posts recomendados

Postado

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
  • 3 semanas depois...
Postado

@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
Postado

@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
Postado

@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  ☺

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...