5
respostas

O comando break não está funcionando

Fala galera, poderiam me ajudar?

O programa não está parando no "break", aparece a seguinte mensagem " break can be used only within a loop" , não consegui encontrar o erro. Estou usando o VScode para escrever o script

import random

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") print(numero_secreto)

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: ") 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 = chute == numero_secreto
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")

5 respostas

Ola camarada, eu indentei seu código corretamente e ele funcionou sem problema, lembre-se que os espaços a esquerda no python para definir os blocos de código são extremamente importantes.

PS: quando você quer fazer vários "prints" seguidos você pode usar o parâmetro sep recebendo \n para fazer em um print apenas, por exemplo:

print("*", "Bem vindo ao jogo de Adivinhação!", '*', sep='\n') 

faz o mesmo que

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

Olá Lário, grato por retornar com suas considerações, sem dúvida serão úteis!

Infelizmente aqui no meu não está funcionando, vou tentar rodar direto no python pra ver se acho o erro.

Valeu!

import random

print("x" * 50)
print("          Bem vindo ao jogo de advinhação")
print("x" * 50)

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

print("Qual o nível de dificuldade?")
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 = 5
else:
      total_de_tentativas = 5

for rodada in range(1, total_de_tentativas + 1):
      print("Tentativa {} de {}".format(rodada, total_de_tentativas))
      chute = int(input("Digite um número entre 0 e 100: "))
      print("Você digitou ", chute)

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

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

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





print("Fim do jogo")

acrescentei uma linha no caso do jogador escolher um nível inexistente:

import random

print("x" * 50)
print("          Bem vindo ao jogo de advinhação")
print("x" * 50)

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

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

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

if (nivel != 1 and nivel != 2 and nivel != 3):
    print("Você digitou nível inexistente, escolha (1), (2) ou (3)")
elif (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 = int(input("Digite um número entre 0 e 100: "))
      print("Você digitou ", chute)

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

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

      if acertou:
              print("Você acertou e fez {} pontos!".format(pontos))
              break
      else:
              if(maior):
                  print("Você erro! O seu chute foi maior que o número secreto.")
              elif(menor):
                  print("Você errou! O seu chute foi menor do que o número secreto")
              pontos_perdidos = abs(numero_secreto - chute)
              pontos = pontos -pontos_perdidos




print("Fim do jogo")

Grato pela contribuição Alexandre!!