Indo Além - Loops for#
Agora que já temos alguma experiência com loops for vamos aprimorar nosso uso de loops em geral. Temos duas opções, while e for, que podem fazer essencialmente as mesmas operações de repetição. Porém, em geral uma delas é muito mais fácil de escrever e ler.
Iremos adotar as seguintes regras para melhorar a legibilidade e clareza dos nossos programas.
Quando usar while: quando não sabemos quantas vezes o loop irá rodar e isso depende de algo que acontece dentro do loop. Veja alguns exemplos:
- validar entrada do usuário
- em um jogo de adivinhação, o usuário tem que acertar o número sorteado
- executar até que um dado tenha valor maior que 5
Quando usar for: quando já conhecemos antes de começar o loop o número máximo de vezes que ele irá rodar. Alguns exemplos disso são:
- ler
ninteiros do terminal - fazer a média de elementos de uma lista
- calcular o valor de uma fórmula matemática com somatório
Convertendo código while para usar for#
No momento vocês já tem prática em usar loops while e já reconhecem mais facilmente quando usá-lo. Veremos agora como reescrever códigos para usar for nos casos que enumeramos acima.
Um loop com contagem,por exemplo, pode ser escrito com while da maneira abaixo.
Porém é muito mais rápido e legível escrevê-lo com um for!
O valor 10 pode ser também uma variável e não precisa ser somente um número fixo. A regra geral para usar o for para contagem é usar o range da maneira abaixo:
range(valor_inicial, valor_final_mais_um, incremento)
Por exemplo, para contar de 5 até 10 (inclusive) usamos range(5, 10). Se quisermos pular de dois em dois seria range(5, 10, 2).
Também podemos ir de trás para frente: range(10, 1, -1) começa em 10 e vai diminuindo até chegar no 2.
Exercício 1
Exercício 2
Resposta
A opção range(0, n, 1), apesar de estar funcionalmente correta, é menos desejada que a primeira. O valores padrão para início e incremento são 0 e 1, então podemos passar só o fim em muitas situações.
Exercício 3
Exercício 4
Exercício 5