8.1 Laço for
Poder executar um grupo de comandos sob uma condição específica é ótimo. Mas e se eu quiser executar alguma ação 100 vezes? Como fazer isso?
Para isso, na linguagem Python existem laços. E para nossa tarefa, o
laço for
é perfeito. A estrutura básica do comando
for
é a seguinte:
for variável in lista_de_valores:
comando1
comando2
comandoN
Onde lista_de_valores é um conjunto de valores: lista, string, dicionário (falaremos sobre eles mais tarde).
A variável assume sequencialmente valores da lista_de_valores, e para cada um desses valores, o bloco de comandos é executado.
Exemplo:
Exemplo | Explicação |
---|---|
|
1. A variável fruit assume o valor "apple" e o comando print(fruit) é executado. 2. A variável fruit assume o valor "banana" e o comando print(fruit) é executado. 3. A variável fruit assume o valor "cherry" e o comando print(fruit) é executado. |
É assim que o laço funciona:
Se houver 10 valores na lista após a palavra in
, então o bloco
de comandos será executado 10 vezes.
Para cada valor na lista_de_valores acontecem duas coisas:
-
A variável do laço (indicada após a palavra
for
) assume o próximo valor da lista_de_valores. - Em seguida, o bloco de comandos é executado.
Outro exemplo:
Exemplo | Explicação |
---|---|
|
O laço irá imprimir os números na tela:
1 2 3 4 5 6 7 8 9 10 |
8.2 Definindo o intervalo — range
No último exemplo, vimos que é muito fácil imprimir 10 números na tela. Mas e se quisermos executar o laço 100 vezes? Ou 1000?
Existe, obviamente, uma solução para isso. Na linguagem Python, existe uma
função chamada range()
usada para gerar uma
sequência de números que, em combinação com o laço
for
, se torna uma ferramenta poderosa para lidar com tarefas
repetitivas.
A função range()
pode ser usada de várias
maneiras, dependendo do número de argumentos passados para ela.
Principais formas de uso do range()
:
Um argumento: range(n)
gera uma sequência
de 0 a n-1. Isso é útil quando precisamos executar uma ação
um certo número de vezes.
for i in range(5):
print(i) # Irá imprimir os números de 0 a 4
Dois argumentos: range(start, stop)
gera uma
sequência de start
a stop-1
. Isso é útil para
começar a iteração a partir de um número específico.
for i in range(1, 6):
print(i) # Irá imprimir os números de 1 a 5
Três argumentos: range(start, stop, step)
adiciona um terceiro
argumento step
, que define o intervalo entre os números na
sequência.
for i in range(0, 10, 2):
print(i) # Irá imprimir os números pares de 0 a 8
Laços reversos: range()
pode gerar números em ordem
reversa, permitindo realizar iterações ao contrário.
for i in range(10, 0, -1):
print(i) # Irá imprimir os números de 10 a 1
A função range()
combinada com o laço
for
oferece uma ferramenta flexível para controlar iterações em
Python. Compreender suas capacidades ajuda a criar laços mais eficientes e
claros, os quais são partes essenciais de qualquer programa.
8.3 Laço por lista
Se você quer realizar um conjunto de ações sobre valores diferentes, a função
range()
não é adequada. Você sempre pode agrupar esses
valores em uma lista usando colchetes. A estrutura básica dessa operação
é a seguinte:
for variável in [val1, val2, …, valN]:
comando1
comando2
comandoN
Você só precisa listar os valores separados por vírgula, e o laço será executado para cada um deles, enquanto a variável assume cada valor sequencialmente. Exemplo:
Exemplo | Explicação |
---|---|
|
O laço irá imprimir as strings na tela:
apple banana cherry |
Você pode incluir números na lista, e diretamente no laço após a palavra
in
:
Exemplo | Explicação |
---|---|
|
O laço irá imprimir os números na tela:
0.99 2.75 0.25 |
Na lista, você pode listar objetos de qualquer tipo:
Exemplo | Explicação |
---|---|
|
O laço irá imprimir as strings na tela:
0.99 apple -1 True |
GO TO FULL VERSION