Laços de Repetição (while)#
O objetivo de aprendizado deste handout é que, ao final da atividade, você seja capaz de utilizar laços de repetição (não se preocupe, vamos explicar o que é isso) em seus programas em conjunto com as estruturas que vimos nas aulas anteriores (if
, input
, etc.) Para isso, vamos trabalhar com o exemplo de um jogo simples: o programa escolhe um número aleatório e o jogador precisa descobrir qual foi o número escolhido.
Importante
Sempre valide a resposta com o professor ou algum colega que já tenha validado a própria resposta antes de seguir para o próximo exercício.
Aquecimento#
Para começar, vamos implementar uma versão do jogo na qual o jogador só tem uma chance para acertar (sim, completamente na sorte ).
Exercício 1
Exercício 2
Exercício 3
Repetindo o if
#
Vamos fazer uma breve reflexão. O que seria necessário alterar no código do jogo para que o jogador tivesse 2 chances? Uma solução rápida seria copiar o bloco do if
, elif
, else
e colar no final do programa. Mas e se o jogador tivesse 5 chances? E 100? E se pudesse continuar tentando enquanto não tivesse adivinhado o número?
Exercício 4
Seu código deveria ser similar a este:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
else:
print('Pratique mais')
Exercício 5
Antes de prosseguir, compare o seu código com a resposta abaixo. Para os próximos passos fazerem sentido é importante que o seu código siga a mesma estrutura.
Com a modificação acima seu código deve ficar semelhante a:
tem_duvidas = True
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
Considere a seguinte versão modificada do seu programa:
tem_duvidas = True
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
Exercício 6
Resposta
São 3 possíveis resultados:
- Se o usuário responder
'não'
na primeira vez, a variáveltem_duvidas
será atualizada comFalse
e o programa imprimiráAté a próxima
. Assim, o bloco do segundoif tem_duvidas
não será executado. - Se o usuário responder qualquer coisa diferente de
'não'
, a variáveltem_duvidas
continuará valendoTrue
e o programa imprimiráPratique mais
. Assim, o bloco do segundoif tem_duvidas
será executado e o programa perguntará novamente se o aluno tem dúvidas. Aqui existem duas possibilidades:- Se o usuário responder
'não'
, o programa imprimiráAté a próxima
e encerrará. - Se o usuário responder qualquer coisa diferente de
'não'
, o programa imprimiráPratique mais
e encerrará.
- Se o usuário responder
Exercício 7
Com a modificação acima seu código deve ficar semelhante a este:
tem_duvidas = True
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
if tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
O operador while
#
Vamos ver como o operador while
pode nos ajudar. Clique aqui