5
respostas

Looping infinito

Fiz o codigo conforme o instrutor pediu porem o looping ficou infinito. Procurei no google algo semelhante vi algo sobre o break, apliquei logo depois do print do acerto e mesmo assim sem sucesso.

print("****") print("Bem vindo ao jogo da advinhação") print("****")

numero_secreto = 42 total_de_tentativas = 3 rodada = 1 acertou = chute == numero_secreto maior = chute > numero_secreto menor = chute < numero_secreto

while(total_de_tentativas <= 3): print("Tentativa: ",rodada," de ",total_de_tentativas) chute_str = input("Digite o seu numero: ") chute = int(chute_str) acertou = chute == numero_secreto maior = chute > numero_secreto menor = chute < numero_secreto

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

else: if(maior): print("Voce errou! O seu chute foi maior do que o numero secreto") elif(menor): print("Voce errou! O seu chute foi menor do que o numero secreto")

rodada = rodada + 1 print("Fim do jogo")

5 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá, tudo bem?

Você está usando o PyCharm? nesse caso, quando você começa um while, tudo que estiver dentro do seu while, tem que estar indentado. Outra coisa é que na condição do while, está indicado enquanto for menor ou igual a 3, mas pra isso, você precisa colocar o 'rodada = rodada + 1' la dentro do while, dessa forma, a cada repetição, seu programa vai incrementar uma rodada. Sobre o break, ele quebra um loop, se dentro do seu while, vc colocar:

if chute == numero_secreto: break

assim que o jogador acertar, o while será encerrado e o programa vai pra próxima linha que não estiver dentro dele, ou seja, que não estiver indentada.

Espero ter ajudado! Fico à disposição.

Ola Orlando.

Tentei adicionar o que voce falou e o erro continuou, poderia escrever o codigo por favor?

Então pelo oq eu entendi o erro esta persistindo pois você não colocou os 4 espaços na frente para ele entrar dentro do looping do comando while.

While(rodada <= total_de_tentativas):
    print(f'tentativa {rodada} de {total_de_tentativas}')
    chute = int(input('Digite seu numero'))
    print('Você digitou {chute}')
    acertou = chute == numero_secreto
    maior   =  chute > numero_secreto
    menor   =  chute < numero_secreto
        if (acertou):
        print("você acertou")
        break

isso deve ajudar, espero ter solucionado seu problema.

Olá,meninos!

Francisco, debuguei o código pra vc. Agora vc pode rodar que ele vai dar certo.

print("****")
print("Bem vindo ao jogo da advinhação")
print("****")

numero_secreto = 42
total_de_tentativas = 3
rodada = 1
chute = 0
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto

while(rodada <= total_de_tentativas):
    print("Tentativa: ",rodada," de ",total_de_tentativas)
    chute_str = input("Digite o seu numero: ")
    chute = int(chute_str)
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto


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

    else:
        if(maior):
            print("Voce errou! O seu chute foi maior do que o numero secreto")
        if(menor):
            print("Voce errou! O seu chute foi menor do que o numero secreto")

        rodada = rodada + 1
print("Fim do jogo")

vc precisa atentar para:

  • as indentações;
  • o conteúdo que quer repetição (o que entra no loop);
  • a finalização de uma condição;
  • a definição de variáveis (havia um problema com o chute);
  • a definição dos limites do while (precisava de adequação).

Favor não esquecer de marcar o status da pergunta comosolucionado ;)