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

Loop Infinito

Bom dia, após a tentativa igual a aula meu código fica em um loop infinito apontando a saída "Tentativa 1 de 3 ". Alguém poderia dar uma luz, já tentei a maneira de indentar o código utilizando ctrl + alt + l ou o tab porém nada resolveu o meu problema

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

numero_secreto = 42

total_de_tentativas = 3

rodada = 1

while (total_de_tentativas > 0):
        print("Tentativa", rodada, "de", total_de_tentativas)

chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

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

if (acertou):
    print("Parabéns, você acertou")
else:
    if (maior):
        print("Você digitou um número maior que o número secreto")
    elif (menor):
        print("Você digitou um número menor que o núnmero secreto")

total_de_tentativas = total_de_tentativas - 1

print("Fim do jogo")
4 respostas

Opa Humberto tudo bem? Repara no seu while, olha a verificação que vc está fazendo.

primeiro vamos começar pela sua variavel

total_de_tentativas = 3

declarando sua tentativas = 3.

Logo depois vamos para seu while.

while (total_de_tentativas > 0):

Seu while vai ficar sim em um loop infinito desse jeito, olha a verificação que ele está fazendo, total_de_tentavivas > 0, isso é verdadeiro, então sempre vai estar dentro do while, um exemplo que vc pode fazer é assim no seu código.

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

numero_secreto = 42

total_de_tentativas = 0

rodada = 1

while (total_de_tentativas <= 3):
        print("Tentativa", rodada, "de", total_de_tentativas)

chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

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

if (acertou):
    print("Parabéns, você acertou")
else:
    if (maior):
        print("Você digitou um número maior que o número secreto")
    elif (menor):
        print("Você digitou um número menor que o núnmero secreto")

total_de_tentativas = total_de_tentativas +1;

print("Fim do jogo")

Curioso, copiei e colei teu código e continua em loop kkkkkk

solução!

Humberto, tudo bem?

Falta a indentação para que o código fique dentro do while, dessa maneira que está, o loop fica executando e nunca chega a rodar a parte debaixo do seu código, portanto o número de tentativas nunca vai diminuir.

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

numero_secreto = 42

total_de_tentativas = 3

rodada = 1

while (total_de_tentativas > 0):
    print("Tentativa", rodada, "de", total_de_tentativas)

    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

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

    if (acertou):
        print("Parabéns, você acertou")
    else:
        if (maior):
            print("Você digitou um número maior que o número secreto")
        elif (menor):
            print("Você digitou um número menor que o núnmero secreto")

    total_de_tentativas = total_de_tentativas - 1

print("Fim do jogo")

Espero que tenha tirado sua dúdiva.

Estou à disposição. Bons estudos!

João, muito obrigado pela ajuda