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.