2
respostas

Problemas com alguns comandos

Depois que o python pediu para atualizar os comandos "break" e "int" pararam de funcionar, já tentei procurar em muitos lugares e nada...testei varias formas mesmo assim não funcionou.

import random

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

print("Qual o nivel de dificuldade?", numero_secreto)
print("(1) Fácil (2) Médio (3) Díficil")

nivel = int(input("Defina um 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 = 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")
2 respostas

Olá Lucca, tudo bem com você?

Gostaria de saber qual o erro é apresentado no momento da execução do código?

Analisando e testando o código apresentado, a cláusula break foi declarada fora do laço for, isso está acontecendo devido a indentação (espaços) usado no código. A cláusula break deve ser declarada dentro de um laço de repetição for ou while, ele possui o objetivo de interromper a execução da repetição do laço. Caso não seja declarado dessa forma será elevado o erro de sintaxe, SyntaxError: 'break' outside loop.

Será necessário realizar uma correção na identação do código, para isso, siga os passos abaixo.

  • Selecione da linha que contém a estrutura condicional if (acertou): até a penúltima linha do código, pontos = pontos - pontos_perdidos.
  • Após selecionar as linhas, pressione TAB uma vez. Será adicionado os espaços necessários para que esse bloco de código fique dentro do laço for.
  • Salve o arquivo e execute-o novamente.

Deixo abaixo o código para a comparação já com a mudança necessária aplicada.

import random

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

print("Qual o nivel de dificuldade?", numero_secreto)
print("(1) Fácil (2) Médio (3) Díficil")

nivel = int(input("Defina um 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 = 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")

Peço que teste o proposto acima, caso tenha dificuldades, ou apresente erro após as mudanças, peço que informe o erro apresentado e envie uma print exibindo a tela completa no momento da execução do código.

Para aprimorar ainda mais o seu aprendizado, gostaria de recomendar a leitura do seguinte artigo que aborda sobre a importância da indentação nos códigos Python.

O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Fico à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado ! Funcionou !