Olá Filipe, tudo bem com você?
Meus parabéns pela implementação do teste da entrada do usuário, fico feliz que tenha compartilhado com a comunidade do fórum Alura.
Testando o seu código vi que ele apresentava uma mensagem de erro de indentação, esse erro acontece devido não termos um código dentro da função jogar()
, as linhas de código que estão abaixo, não estão dentro da função devido a um erro de indentação, para corrigir basta colocar 4 espaços antes das linhas ou usar o tab.
Por boa prática, é recomendado retirar a importação dos módulos que não estão sendo utilizados no nosso código, nesse caso é recomendado retirar as seguintes linhas: from logging import exception
e import string
.
Seguindo o conceito de retirar do código o que não é utilizado, temos a linha de código: except Exception as e:
, no código não à o uso do apelido e
(quando usamos o as estamos criando um apelido para algo) sendo recomendado retirar essa parte também, devido não está sendo utilizada.
Deixo abaixo o código com as modificações feitas para comparação.
import random
def jogar():
print("Bem-vindo ao joguinho em Python")
numeroSecreto = random.randrange(1, 101)
tentativas = 0
pontos = 1000
print("Selecione um nivel:")
print("1- Facil 2- Medio 3- Dificil")
while True:
try:
nivel = int(input("Defina o nivel: "))
while (nivel < 1 or nivel > 3):
print("Erro: a dificuldade é de 1 a 3...")
nivel = int(input("Defina o nivel: "))
break
except Exception:
print("Apenas digite numeros inteiros...")
if (nivel == 1):
tentativas = 20
elif (nivel == 2):
tentativas = 10
elif (nivel == 3):
tentativas = 5
for rodada in range(1, tentativas):
print("Tentativa {} de {}".format(rodada, tentativas))
while True:
try:
chute = int(input("Insira um numero: "))
while chute < 1 or chute > 100:
print("Chute entre 1 e 100...")
chute = int(input("Insira um numero: "))
print(f'Voce inseriu', chute)
break
except Exception:
print("Apenas digite numeros...")
acertou = chute == numeroSecreto
maior = chute > numeroSecreto
menor = chute < numeroSecreto
if (acertou):
print("Voce acertou e fez {} pontos!".format(pontos))
print("Fim do jogo!")
break
else:
print("Voce errou!")
if (maior):
print("Seu chute foi maior que o numero secreto")
elif (menor):
print("Seu chute foi menor que o numero secreto")
if (chute != True):
chute = tentativas - 1
pontosPerdidos = abs(numeroSecreto - chute)
pontos = pontos - pontosPerdidos
if (__name__ == "__main__"):
jogar()
Para aprimorar o seu aprendizado sobre indentação, recomendo a leitura do seguinte artigo:
O artigo está em inglês, caso tenha dificuldades com o idioma recomendo o uso do tradutor do navegador.
Deixo aqui também uma recomendação de um curso da Alura que aborda sobre as boas práticas de programação em Python.
Em caso de dúvidas, coloco-me à disposição.
Abraços e bons estudos.