Teoria

Cara, imagina que você precisa exibir na tela uma sequência de 100 números. Já pensou se você tivesse que escrever a função print 100 vezes?! Ia ser mó doideira. Pra isso, existem os laços de repetição. São estruturas que permitem que um bloco de código fique se repetindo várias vezes, e alterando seu comportamento durante cada repetição. As duas estruturas de repetição em Python são o While, e For.

Laço While

Se você se lembrar bem, na estrutura condicional, usando o if, somos capazes de executar ou não um bloco de código dependendo de uma condição booleana.

A estrutura while tem um formato muito parecido.

Você só precisa colocar uma expressão booleana na estrutura e o bloco de código dentro da estrutura vai ser executado repetidamente até que a condição seja falsa. Repara que é muito possível que essa condição nunca fique falsa, caracterizando um loop infinito.

Se você executar esse código, vai ver que seu programa vai exibir o texto “é verdade” pra sempre. Literalmente, eu não tô zoando. Você vai ter que finalizar o programa manualmente, porque a condição 1

Olha, nesse caso o laço não vai se repetir pra sempre. A cada vez que o código se repetir, a variável “contador” vai ter um valor diferente. Esse código resolve o problema que a gente tinha falado no início! Ao executar esse programa, será exibida uma sequência de 1 a 100. Quando o valor da variável “contador” for maior que 100, a repetição vai terminar, sacou?! Agora vamos falar do for.

Laço For

Diferentemente do laço while, que é baseado em condições booleanas e pode até ser um loop infinito, o laço “for” tem um número determinado de passos. Você pode dizer, antes mesmo da repetição começar, quais vão ser o valor de uma determinada variável a cada loop. Ficou confuso? Calma que eu te mostro, mano!

Ao executar esse código, o resultado é esse aqui:

Viu? O mesmo código se repetiu, mas a cada repetição o valor da variável foi alterado na sequência da lista que é passada na estrutura. Mas você não tem que fazer a lista manualmente sempre. Existem algumas funções que criam listas pra gente ali de forma automática!

Esse código faz a mesma coisa que a gente fez com o while, ele exibe todos os números de 1 a 100. Repara que na função range() a gente passou 1 e 101. Isso é porque o segundo intervalo não tá incluso, blz? Se fizer range(1, 100), só vai exibir até o 99!

Mas também não é obrigatório usar a variável da estrutura. Olha:

Viu? A variável muda a cada loop, mas a gente cagou pra ela e não usou.

Mas se liga que eu usei a função range() de outra forma. Se você passar só um valor, ele faz no intervalo de 0 até o valor que você passar -1, beleza?!

Laço For com string

Doido, lembra daquele papo de strings serem bem parecidas com listas??! Então… As strings também funcionam no laço for, e a gente consegue iterar pelas letras de uma string. Se liga nesse exemplo prático:

A gente colocou a string no lugar da lista, e o resultado é que, a cada repetição, a variável que a gente criou vai ter uma das letras da string dentro. Se a gente executar esse programa, o resultado vai ser esse:

Ou seja, executamos um print() pra cada letra, sacou??! Também, queria enfatizar que o nome da variável do for é arbitrário, você que escolhe. Reparou que eu tava usando “variável” e depois mudei pra “letra”?? Então! Qualquer nome funciona, ok? E por enquanto é só isso.

Te vejo nos exercícios!!!

Laço For

Laço For com string