- Aprenda a sintaxe básica do loop for em Python.
- Descubra como iterar sobre listas, tuplas, strings e dicionários.
- Conheça as melhores práticas e armadilhas comuns ao usar loops.
Sintaxe do Loop For em Python
A sintaxe do loop for em Python inicia-se com a palavra-chave for, seguida por uma variável de loop, a palavra-chave in, um iterável e dois pontos. O bloco de código indentado abaixo é executado uma vez para cada item presente no iterável.
for variável in iterável: instrução1 instrução2
Esse formato é compatível com qualquer tipo de iterável, como listas, tuplas, strings, dicionários, conjuntos e objetos personalizados que implementam o protocolo de iteração. É importante manter a indentação consistente, utilizando quatro espaços.
Iterando sobre Listas e Tuplas
As listas são um dos alvos mais comuns para loops for.
frutas = ['maçã', 'banana', 'cereja']for fruta in frutas: print(fruta)
Em cada iteração, o próximo elemento é atribuído à variável fruta. As tuplas se comportam de maneira similar, devido à sua natureza sequencial. Quando a descompactação é necessária, múltiplas variáveis podem ser utilizadas após for.
coordenadas = [(1, 2), (3, 4), (5, 6)]for x, y in coordenadas: print(x + y)
Trabalhando com Strings e Dicionários
As strings funcionam como sequências de caracteres.
for char in 'Python': print(char)
Por padrão, os dicionários iteram sobre suas chaves. O método items permite a obtenção de pares chave-valor.
pontuacoes = {'Alice': 95, 'Bob': 87}for nome, pontuacao in pontuacoes.items(): print(f'{nome} marcou {pontuacao}')
Os métodos de chaves e valores possibilitam uma iteração mais direcionada, caso apenas um componente seja necessário.
Função Range e Loops Numéricos
O objeto range gera sequências inteiras de forma eficiente, sem a necessidade de armazená-las na memória.
for i in range(5): print(i)
A função range aceita os argumentos start, stop e step. Etapas negativas permitem a criação de sequências em ordem decrescente.
for i in range(10, 0, -2): print(i)
Utilizando Enumerate e Zip
A função enumerate fornece tanto o índice quanto o valor.
for indice, valor in enumerate(['a', 'b', 'c']): print(indice, valor)
A função zip combina múltiplos iteráveis em paralelo.
nomes = ['Alice', 'Bob']idades = [25, 30]for nome, idade in zip(nomes, idades): print(nome, idade)
Loops For Aninhados
Loops aninhados são utilizados para manipular dados multidimensionais ou gerar combinações.
for i in range(3): for j in range(2): print(i, j)
Cada iteração externa aciona um ciclo completo do loop interno. O desempenho permanece aceitável para dimensões pequenas, mas pode crescer exponencialmente com um maior nível de aninhamento.
Controle de Loop com Break, Continue e Pass
A instrução break interrompe o loop imediatamente.
for num in [1, 2, 3, 4]: if num == 3: break print(num)
Por outro lado, continue ignora a iteração atual.
for num in range(5): if num % 2 == 0: continue print(num)
A instrução pass serve como um espaço reservado para código que será implementado futuramente.
for item in itens: pass
Melhores Práticas para Legibilidade e Desempenho
É recomendável escolher variáveis de loop descritivas, evitando nomes genéricos como i ou x, a menos que o contexto seja estritamente numérico. Além disso, evite modificar o iterável durante a iteração; em vez disso, crie uma cópia ou colete as alterações separadamente.
Prefira compreensões de lista ou expressões geradoras para transformações simples.
quadrados = [x**2 for x in range(10)]
Limite a profundidade do aninhamento; extraia a lógica interna em funções separadas quando a complexidade aumentar. Utilize funções do módulo itertools, como produto ou permutations, para padrões de iteração avançados, melhorando a clareza em relação ao aninhamento manual. Além disso, considere criar um perfil de código quando os loops processam grandes conjuntos de dados e avalie alternativas vetorizadas do NumPy quando as operações numéricas forem predominantes.
Armadilhas Comuns e Como Evitá-las
Erros do tipo off-by-one são comuns ao trabalhar com a função range; verifique se os valores de parada estão alinhados com a intenção. Iterar um dicionário sem utilizar .items() quando os valores são necessários resulta em acessar apenas as chaves. Reatribuir a variável de loop dentro do bloco não altera o iterável original. Sempre teste casos extremos, incluindo iteráveis vazios, que simplesmente ignoram a execução sem gerar erros.
Perguntas Frequentes
Qual é a estrutura básica de um loop for em Python?
A estrutura básica de um loop for em Python consiste na palavra-chave for, seguida por uma variável, a palavra in, um iterável e dois pontos, com o bloco de código indentado abaixo.
Como posso iterar sobre um dicionário em Python?
Para iterar sobre um dicionário em Python, você pode usar o método items() para acessar pares chave-valor, ou iterar diretamente sobre as chaves.
O que é a função range e como ela é utilizada?
A função range gera uma sequência de números inteiros. É frequentemente utilizada em loops para definir o número de iterações, permitindo especificar valores de início, fim e passo.
Quais são as melhores práticas ao usar loops for?
As melhores práticas incluem usar nomes de variáveis descritivas, evitar modificações no iterável durante a iteração, e considerar o uso de compreensões de lista para transformações simples.