Olá a todos. No curso foi ensinado a tratar o 'input' para não receber números menores que 1 e nem receber números maiores que 100. Porém quando isso ocorre, o programa conta uma tentativa. Eu fiz sem o 'for' conforme foi ensinado e permaneci com o 'while' para que não fosse desperdiçada uma tentativa caso o usuário digitasse um número fora do solicitado no input. A minha dúvida é: Como o Python está entendendo que NÃO é para continuar incrementando as rodadas? Quando eu uso o 'continue' ele continua seguindo as instruções e no final existe ainda o incremento. Por que com o "erro" o incremento não é feito? Segue o código:
num_secreto = 43
tentativas = 5
rodada = 1
while(rodada <= tentativas):
print("Rodada: {} de {} ".format(rodada, tentativas))
chute_str = input("Digite o seu número (1 a 100): ")
chute = int(chute_str)
erro = chute < 1 or chute > 100
print("Você digitou o número: ", chute)
if (erro):
print("Por favor, verifique o número digitado e tente novamente")
continue
if(num_secreto == chute):
print("Parabéns, você acertou!")
break
elif(chute > num_secreto and chute <= num_secreto + 10):
print("Errou, o chute foi maior que o número secreto, mas foi bem perto!")
elif(chute < num_secreto and chute >= num_secreto - 10):
print("Errou, o chute foi menor que o número secreto, mas foi bem perto!")
elif (chute < num_secreto):
print("Errou, o chute foi menor que o número secreto")
elif (chute > num_secreto):
print("Errou, o chute foi maior que o número secreto")
rodada = rodada + 1
print("Fim do jogo")