3
respostas

"continue" e "while" can be used only within a loop

Não sei o porquê de não conseguir rodar o código. Sempre dá erro na linha 29 e 39 alegando que o continue e o break precisam estar dentro de um loop. Alguém pode me ajudar?

import random

print("bem vinde ao jogo de adivinhar!")

numero_secreto = random.randrange(1,101)
total_de_tentativas = 0

print("qual nível de dificuldade você quer jogar?")
print("(1) fácil (2) médio (3) difícil")

nivel = int(input("defina o nível: "))

if(nivel == 1):
    total_de_tentativas = 20
elif(nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5


for rodada in range (1, total_de_tentativas + 1) :
    print("tentativa {} de {}", format(rodada, total_de_tentativas))
    chute_str = input("digite um número entre 1 e 100:")
    chute = int(chute_str)
    print("você digitou: ", chute_str)

if(chute < 1 or chute > 100):
    print("você deve digitar um número entre 1 e 100.")
    continue



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

if(acertou):
    print("você acertou :)")
    break
else:
    if(maior):
        print("você errou :( o seu chute foi maior que o número secreto.")
    elif(menor):
        print("você errou :( o seu chute foi menor que o número secreto.")    

print("fim do jogo!")
3 respostas

Ola ted, acho que o que esta faltando são as chaves. tente por as ações a serem tomadas dentro de {chaves} .

ex:

if(a==b){
    print("você acertou");
} else {
    print("você errou");
}

posso estar enganado, mas acho que isso possa resolver seu problema.

(obs: so depois que postei vi que estava no forum do python, é bem possivel que isso n resolva seu problema, desculpe pelo incomodo.)

Olá Ted, tranquilo? As palavras continue e break servem para interromper estruturar de repetição, o que esta aconcendo com seu código é que você está chamando esses dois carinhas fora de um escopo com laços. Análisando seu código acredito que as linhas 27 até 44 estão faltando uma tabulação para entrarem dentro do escopo do for da linha 21. Ficaria assim:

for rodada in range (1, total_de_tentativas + 1) :
    print("tentativa {} de {}".format(rodada, total_de_tentativas)) # Repare que aqui você colocou ',' ao invés do '.'
    chute_str = input("digite um número entre 1 e 100:")
    chute = int(chute_str)
    print("você digitou: ", chute_str)

    if(chute < 1 or chute > 100):
        print("você deve digitar um número entre 1 e 100.")
        continue



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

    if(acertou):
        print("você acertou :)")
        break
    else:
        if(maior):
            print("você errou :( o seu chute foi maior que o número secreto.")
        elif(menor):
            print("você errou :( o seu chute foi menor que o número secreto.")

print("fim do jogo!")

Espero ter ajudado. Bons estudos! ;)

Como o Rafael mencionou, você precisa identar (tabular) o código para que ele funcione.