4
respostas

Break outside d

Prezados, Fiquei preso nessa parte e não estou entendo onde está o erro. Quando eu dou RUN no código aparece o seguinte erro:

/Users/(...)/jogos.py
Traceback (most recent call last):
  File "/Users/(...)/jogos.py", line 2, in <module>
    import adivinhacao
  File "/Users/(...)/adivinhacao.py", line 41
    break
    ^
SyntaxError: 'break' outside loop

Process finished with exit code 1

Fui até a linha 41 do arquivo adivinhacao.py, que é onde está o break, e o código está assim:

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

if (acertou):
      print("Você acertou e fez {} pontos!".format(pontos))
      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.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

    print("Fim do Jogo! O número secreto era:", numero_secreto)

A linha 41 é o break, e eu não estou conseguindo entender porque ele está fora do loop!

Alguém poderia me ajudar?

4 respostas

Poderia postar o código completo?

Segue o código inteiro do arquivo adivinhacao.py

import random

def jogar():

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

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

    print("Qual o nível de dificuldade?")
    print("(1) Fácil (2) Médio (3) Difícil")

    nivel = int(input("Define 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 o seu número entre 1 e 100: ")
        print("Você digitou: ", chute_str)
        chute = int(chute_str)

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

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

    if (acertou):
        print("Você acertou e fez {} pontos!".format(pontos))
        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.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

    print("Fim do Jogo! O número secreto era:", numero_secreto)

Agora o código inteiro do arquivo jogos.py

import forca
import adivinhacao

print("************************")
print("Escola o seu jogo!")
print("************************")

print("(1) Forca (2) Adivinhação")

jogo = int(input("Qual o Jogo?"))

if(jogo == 1):
    print("Jogando Forca")
    forca.jogar()
elif(jogo == 2):
    print("Jogando adivinhação")
    adivinhacao.jogar()


if (acertou) deveria estar dentro do for? Se sim, ele não está. Por isso está dando esse erro. Você precisa acertar a indentação.

Era isso mesmo! Obrigado!!