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

o print "fim do jogo" aparece em todas as minhas tentativas

print("**************************************")
print("olá, bem vindo ao jogo de adivinhação!")
print("**************************************")

numero_secreto = 42

numero_total_tentativas = 3
rodada = 1

while(rodada <= numero_total_tentativas):
        print("tentativa", rodada, "de", numero_total_tentativas)
        chute_str = input("Digite o seu número!")
        print("Você digitou" , chute_str)
        chute = int(chute_str)

        acertou = numero_secreto == chute
        menor = numero_secreto > chute
        maior  = numero_secreto < chute


        if(acertou):
                print("Você acertou!")
        else:
                if(maior):
                        print("Você errou! Seu número é maior que o número escolhido!")
                elif(menor):
                        print("Você errou! Seu número é menor que o número escolhido")
                rodada = rodada + 1

        print("Fim do jogo!")
2 respostas
solução!

Anna, tudo bem? Pelo que pude ver o seu problema é endentação. Python é uma linguagem dependente de endentação para determinar os blocos de código.

Se você não colocar os "espaços", receberá um erro. Vale observar que os comando, em um mesmo bloco de código, precisam ter o mesmo número de espaços.

No seu caso, o comando print("Fim de jogo!") é executado toda hora porque está "dentro" do while. Deste modo, será executado, sempre, após o if(acertou):.

Para resolver isso, você deve colocar o print no mesmo "nível" do while. Fica algo assim:

...
while(rodada <= numero_total_tentativas):
        ...
        if(acertou):
                print("Você acertou!")
        else:
                ...

print("Fim do jogo!")

Entendi! Obrigada George, sua explicação foi bem clara.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software