Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O laço com while - Aula: 4 - Python 3 part 1 (Não finaliza com o acerto)

Olá, Mesmo digitando o numero correto, o programa continua executando ate a ultima tentativa 3 de 3. O correto não seria com o acerto ele parar o programa ?

print ("#####################")
print ("!Jogo de adivinhação!")
print ("#####################")

#Variaveis
numero_secreto = 24
tentativas = 3
rodada = 1

#Enquanto
while (rodada <= tentativas):
    print ("Tentativa", rodada, "de", tentativas)
    digite_str = input ("Chute um numero: ")
    print ("Você digitou: ", digite_str)
    digite = int (digite_str)

#Variaveis
    acertou = numero_secreto == digite
    maior = digite > numero_secreto
    menor = digite < numero_secreto

#Se
    if (acertou):
        print ("Você acertou")
    else:
        if (maior):
            print ("Você errou! O numero digitado e maior que o numero secreto")
        elif (menor):
            print ("Você errou! O numero digitado e menor que o numero secreto")

    rodada = rodada + 1

    print ("FIM DO JOGO")

insira seu código aqui


2 respostas
solução!

ISSO SE DEVE PQ VOCÊ NÃO DEU UMA FORMA DE SAIR DO LOOP ACERTANDO... a unica condição de sair do loop q você deixou foi tendo 3 rodadas! para isso : voce pode usar de 3 formas! 1-

if(acertou):
    print("acertou!")
    break

2-

if(acertou):
    print("acertou!")
    quit()

3-

#fora do while
acertou = False

while (not acertou):
    print ("Tentativa", rodada, "de", tentativas)
    rodada = rodada + 1
    if (not rodada <= tentativas):
        acertou = True

a terceira forma nao faz muito sentido mas é uma opçao!

Bom dia.

Testei as 3 maneiras e tive o resultado desejado.

Realmente lendo o codigo com calma, percebi que mesmo com "acerto" a condição do WHILE iria continuar.

Não sabia dessa função BREAK.

Obrigado pela ajuda Brayan.