Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida

Não entendi muito pra que serviria o 'continue' nesse caso...

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

... já que o programa funciona sem ele.

numero_secreto = 10
total_tentativa = 3

for rodada in range (1, total_tentativa + 1):
    print(f"Tentativa {rodada} de {total_tentativa}")
    tentativa = eval(input('Advinhe o numero secreto entre 1 e 100: '))
    if tentativa < 1 or tentativa > 100:
        print('Você deve digitar um numero entre 1 e 100')

    maior = tentativa > 10
    menor = tentativa < 10
    if maior:
        print('Voce chutou pra cima')
    elif menor:
        print('Voce chutou pra baixo')
    else:
        print('Voce acertou')
        break
2 respostas
solução!

Oii Marcelo, tudo certo por aí?

O objetivo da cláusula continue é pular para a próxima iteração e interromper o fluxo do código caso a condição seja atendida, fazendo com que o programa pule uma interação e vá para a próxima.

Vamos analisar um exemplo simples:

for numero in range(1, 5):

  if numero == 3:
    continue

  print(numero)

Teremos como resultado:

1
2
4

Observe que quando a condição foi atendida, o programa ignorou as demais instruções que tinham abaixo e pulou uma iteração, fazendo assim com que o número 3 não fosse impresso.

Já no curso, foi definido que caso o valor do chute não estivesse dentro do intervalo de 1 a 100, o fluxo teria que ser interrompido, ou seja, não era necessário dizer se aquele número era maior ou menor que o número secreto. Entenda interrompido nesse caso como próxima interação e não a saída completa do laço de repetição (break). Por esse motivo o continue foi utilizado, para que quando o número digitado estourasse o intervalo definido, não fosse testado e impresso se aquele número era maior ou menor que o número secreto.

Veja na prática os resultados:

Saída SEM continue

Tentativa 1 de 3
Advinhe o numero secreto entre 1 e 100: 2
Voce chutou pra baixo
Tentativa 2 de 3
Advinhe o numero secreto entre 1 e 100: -1 # Chute inválido
Você deve digitar um numero entre 1 e 100 
Voce chutou pra baixo
Tentativa 3 de 3
Advinhe o numero secreto entre 1 e 100: 3
Voce chutou pra baixo

Saída COM continue

Tentativa 1 de 3
Advinhe o numero secreto entre 1 e 100: 2
Voce chutou pra baixo
Tentativa 2 de 3
Advinhe o numero secreto entre 1 e 100: -1
Você deve digitar um numero entre 1 e 100
Tentativa 3 de 3
Advinhe o numero secreto entre 1 e 100: 3
Voce chutou pra baixo

Percebe a diferença? Marquei as na imagem abaixo:

SEM continue

Saída sem a cláusula continue

COM continue

Saída com a cláusula continue

Observe que quando usamos o continue não é nos apresentado se o número foi maior ou menor, e isso porque ele interrompeu o fluxo do trecho e passou para a próxima interação.

Qualquer dúvida estou por aqui, tá?

Grande abraço!

Uau! agora entendi, muito obrigado! passei o olho e nem vi a diferença mas agora tá claro...

P.s.: Dei uma olhada no seu perfil e me interesso nas mesmas áreas que você :)

Abraço!