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

[python][loop infinito]

meu código está assim :

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

numero_secreto = 42 total_de_tentativas = 3 rodada = 1

while rodada < total_de_tentativas:

print("Tentativa: ", rodada, "de", total_de_tentativas)

chute_str = input("Digite o seu numero: ") print("você digitou ", chute_str) chute = int(chute_str)

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

if acertou: print("você acertou!") else: if maior: print("Você errou! O seu chute foi maior do que o numero secreto.") elif menor: print("Você errou! O seu chute foi menor do que o numero secreto.")

rodada = rodada + 1

print("Fim do jogo.")

pelo que vi na aula está igual o do professor, mas quando executo ele fica em um loop infinito dizendo "Tentativa : 1 de 3"

2 respostas
solução!

Olá, Nicholas! Como vai?

Pelo que observei no seu código, parece que você está com um problema de indentação. No Python, a indentação é muito importante para definir o escopo de blocos de código. No seu caso, o bloco de código que deveria estar dentro do loop while está fora dele, por isso o loop está se repetindo infinitamente.

O código que você postou está assim:

while rodada < total_de_tentativas:
    print("Tentativa: ", rodada, "de", total_de_tentativas)
chute_str = input("Digite o seu numero: ")

No entanto, ele deveria estar assim:

while rodada <= total_de_tentativas:
    print("Tentativa: ", rodada, "de", total_de_tentativas)
    chute_str = input("Digite o seu numero: ")
    print("você digitou ", chute_str)
    chute = int(chute_str)

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

    if acertou:
        print("você acertou!")
    else:
        if maior:
            print("Você errou! O seu chute foi maior do que o numero secreto.")
        elif menor:
            print("Você errou! O seu chute foi menor do que o numero secreto.")

    rodada = rodada + 1

Note que agora todo o bloco de código que deve ser repetido está indentado corretamente dentro do loop while. Assim, a cada rodada, o usuário terá a oportunidade de fazer um novo chute e a variável rodada será incrementada, até que o número de rodadas seja igual ao total de tentativas.

Bons estudos!

Obrigado Lucas, era isso mesmo, vou me atentar mais na identação!