3.15 Comando For

Ainda no código do jogo da adivinhação, implementamos o loop while , no qual temos uma variável rodada que começa com o valor 1, e é incrementada dentro do loop, que por sua vez tem uma condição de entrada, que é a rodada ser menor ou igual ao total de tentativas, que é 3.

Ou seja, a rodada tem um valor inicial, que é 1, e vai até 3. Fazemos um laço começando com um valor inicial, até um valor final, sempre incrementando esse valor a cada iteração. Mas se esquecermos de incrementar a rodada, entramos em um loop infinito.

Em casos como esse, existe um outro loop que simplifica essa ideia de começar com um valor e incrementá-lo até chegar em um valor final: o loop for.

Para entender o loop, ou laço for, podemos ir até o console do Python para ver o seu funcionamento. A ideia é definirmos o valor inicial e o valor final, que o loop o incrementa automaticamente. Para isto utilizamos a função embutida range() , passando-os por parâmetro, definindo assim a série de valores. A sintaxe é a seguinte:

Para variável em uma série de valores: Faça algo

Isso, em Python, pode ficar assim:

for rodada in range(1, 10):

O range(1, 10) vai gerar o intervalo de números inteiros de 1 a 9. Na primeira iteração, o valor da variável rodada será 1, depois 2 e até chegar ao valor final da função range() menos 1, isto é, o segundo parâmetro da função não é inclusivo. No exemplo acima, a série de valores é de 1 a 9. Podemos confirmar isso imprimindo o valor da variável rodada no console do Python:

for rodada in range(1,10):

… print(rodada)

… 1

Com a função range() , podemos definir um step (um passo), que é o intervalo entre os elementos. Por padrão, o step tem valor igual a 1, mas podemos alterar este valor passando um terceiro parâmetro

para a função:‌

for rodada in range(1,10,2):

… print(rodada)

… 1

Veja que o intervalo entre cada elemento da série agora é 2, a cada iteração o laço pula dois passos (incrementa 2). Mas não necessariamente precisamos usar a função range() no for , podemos passar os valores da sequência manualmente conseguindo o mesmo resultado:

for rodada in [1,2,3,4,5]:

… print(rodada)

… 1

Tanto o while quanto o for podem ser usados no jogo. Conseguiremos o mesmo resultado, mas o código fica mais verboso com o while , além de corrermos o risco de esquecer de incrementar a rodada ( rodada = rodada + 1 ) e nosso código entrar em um loop infinito. Neste casos, é preferível utilizar o comando for .


⬅️ Capítulo Anterior | Próximo Capítulo ➡️