Python For Loop: sintaxe, exemplos e práticas recomendadas

⚡ Resumo do Artigo

  • 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.

Deixe um comentário