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