1
resposta

Jogo de adivinhação

import random

def numero_aleatorio():
    numero_gerado = random.randint(1,100)
    palpites = 0
            
    while True: # só para quando encontrar um break

        try:
            numero_usuario = int (input('Digite um número entre 1 e 100: ')) # a mensagem fica dentro do while porque ela tem que ficar se repetindo até o usuário acertar o número    

            if not 1 <= numero_usuario <= 100: # se o palpite não estiver entre 1 e 100 -> escrevemos as condições do código normalmente, mas com o not invertemos ela
                raise ValueError ('Erro: o número digitado está fora do intervalo. Digite um número entre 1 e 100: ') # raise faz surgir um erro naquele momento do código e o valueError é uma exceção padrão usada quando o valor é inválido
            
            palpites = palpites + 1

            if numero_usuario < numero_gerado:
                print ('O número é maior! Tente novamente!')
            elif numero_usuario > numero_gerado:
                print ('O número é menor! Tente novamente!')
            else:
                print (f'Parabéns! Você acertou o número em {palpites} palpites!')
                break

        except ValueError as erro:
            print (f'Entrada inválida! {erro}') # mostra a mensagem de entrada inválida e o tipo de erro que ficou armazenado na variável erro

print ('Bem vindo ao jogo de adivinhação!')

numero_aleatorio()
1 resposta

Olá, Luciane, como vai?

O seu código atende bem ao que a atividade propõe e demonstra um bom domínio de estruturas importantes do Python, como laços de repetição, condicionais, uso de exceções e geração de números aleatórios. A lógica está clara, a leitura está organizada e o fluxo do jogo funciona corretamente do início ao fim, incluindo o tratamento de entradas inválidas.

O uso do while True com break no momento correto garante que o jogo continue até o acerto, e a contagem de palpites foi implementada de forma adequada. A validação do intervalo antes das comparações também está coerente com o enunciado, assim como o uso explícito do ValueError para sinalizar valores fora do intervalo permitido.

Parabéns pelo trabalho e obrigada por compartilhar sua solução. O fórum segue à disposição para novas dúvidas, trocas e evoluções nos seus estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!