Pessoal, Uma duvida. Percebi que durante a execução do código, onde o usuário deveria informar o seu chute, caso a tecla enter fosse inserida ou qualquer outro valor diferente de um inteiro, o programa encerrava a execução e retornava o erro:"ValueError: invalid literal for int() with base 10: ''
Fiz algumas pesquisas e consegui resolver com um laço de While/Try, porem não estou conseguindo aplicar a mesma técnica quando o usuário precisa escolher o nível de dificuldade.
Corrigi o problema que qualquer número acima de 3, puxava o nível difícil, mas ainda ocorre o erro ao entrar com a tecla enter ou digitar outro dado que não seja um inteiro. Como consigo resolver?
peço desculpas caso tenha errado em postar o código,
Segue o código completo:
import random
print("********************************")
print("Bem vindo ao jogo de advinhação!")
print("********************************")
#variavéis
numero_secreto = random.randrange(1,101) #Gerando o número aleatorio
total_de_tentativas = 0
#definindo nível de dificuldade
print("Qual nível de dificuldade?")
print("(1) Fácil (2) Médio (3) Difícil")
nivel = int(input("Define o nível: "))
#Lógica para cada nível
if(nivel == 1):
total_de_tentativas = 20
elif(nivel == 2):
total_de_tentativas = 10
elif(nivel == 3):
total_de_tentativas = 5
else:
print('Opção não existe! Escolha um nível para iniciar o jogo.')
#iniciando laço de repetição
for rodada in range (1, total_de_tentativas + 1):
print("Tentativa {} de {}".format(rodada, total_de_tentativas))
#Entrada de dados
while True:
try:
chute = int(input("Digite um número entre 1 e 100: "))
print("Você digitou", chute)
break
except ValueError as err:
print("Opção invalida, digite apenas numerais entre 1 e 100 ")
#Validando os dados inseridos
if (chute < 1 or chute > 100):
print("Você deve digitar um número entre 1 e 100")
continue #continuar o laço
#Condições
acertou = chute == numero_secreto #Primeira condição
chute_maior = chute > numero_secreto #Segunda condição
chute_menor = chute < numero_secreto #Terceira condição
#Iniciando a lógica
if(acertou):
print("**********************************")
print("Você acertou")
print("**********************************")
break #Encerrando o laço
else:
if(chute_maior):
print("Você errou! O seu chute foi maior do que o número secreto")
elif(chute_menor):
print("Você errou! O seu chute foi menor do que o número secreto")
print("********************************")
print("Fim do jogo")
print("********************************")