Fundamentos do Python para Iniciantes

0/31 aulas0%
teoria

Loops de Repetição com for e a função range()

Aprenda sobre loops de repetição com for e a função range()

35 min
Aula 3 de 5

Loops de Repetição com for e a função range()

Olá, futuro(a) programador(a)! 👋 Nesta aula, vamos desvendar um dos conceitos mais poderosos e fundamentais em programação: os loops de repetição. Eles nos permitem automatizar tarefas repetitivas, economizando tempo e tornando nosso código mais eficiente.

Especificamente, focaremos no loop for e em como ele se integra perfeitamente com a função range() para criar sequências numéricas.


1. Introdução aos Loops de Repetição ✨

Imagine que você precisa imprimir a frase "Olá, Python!" dez vezes. Você poderia escrever print("Olá, Python!") dez vezes, certo? Mas e se você precisasse imprimir mil vezes? Ou acessar cada item de uma lista de cem elementos? Fazer isso manualmente seria tedioso, propenso a erros e nada eficiente.

É aqui que os loops de repetição entram! Eles são estruturas de controle que permitem executar um bloco de código repetidamente, sob certas condições. Em Python, os loops mais comuns são for e while. Nesta aula, vamos nos concentrar no for.

O loop for é ideal para iterar (percorrer) sobre uma sequência de elementos, como uma lista, uma string, uma tupla ou até mesmo uma sequência numérica gerada pela função range().


2. O Loop for: Iterando sobre Sequências 🔄

O loop for em Python é projetado para iterar sobre os itens de qualquer sequência (que pode ser uma lista, uma tupla, um dicionário, um conjunto ou uma string) ou outros objetos iteráveis.

Sintaxe Básica

A sintaxe geral do loop for é a seguinte:

for variavel_iteracao in sequencia:
    # Bloco de código a ser executado para cada item da sequência
    # A variável_iteracao assume o valor de cada item a cada repetição

Observe a indentação! Ela é crucial em Python para definir o bloco de código que pertence ao loop.

Exemplos Práticos

Vamos ver alguns exemplos de como o for funciona com diferentes tipos de sequências:

Exemplo 1: Iterando sobre uma Lista

# Lista de frutas
frutas = ["maçã", "banana", "cereja", "damasco"]
 
print("Minhas frutas favoritas são:")
for fruta in frutas:
    print(fruta)

Saída:

Minhas frutas favoritas são:
maçã
banana
cereja
damasco

Neste exemplo, a variável fruta assume, a cada iteração, um dos valores da lista frutas até que todos os itens sejam processados.

Exemplo 2: Iterando sobre uma String

Strings são sequências de caracteres, então podemos iterar sobre elas também!

palavra = "Python"
 
print("Caracteres da palavra:")
for letra in palavra:
    print(letra)

Saída:

Caracteres da palavra:
P
y
t
h
o
n

Exemplo 3: Iterando sobre um Dicionário

Quando você itera diretamente sobre um dicionário com um loop for, ele itera sobre as chaves do dicionário.

aluno = {
    "nome": "Ana",
    "idade": 20,
    "curso": "Engenharia"
}
 
print("Informações do aluno:")
for chave in aluno:
    print(f"{chave}: {aluno[chave]}")

Saída:

Informações do aluno:
nome: Ana
idade: 20
curso: Engenharia

Se você quiser iterar sobre os valores ou sobre os pares chave-valor, pode usar os métodos .values() ou .items(), respectivamente:

# Iterando sobre os valores
print("\nValores do dicionário:")
for valor in aluno.values():
    print(valor)
 
# Iterando sobre os pares chave-valor
print("\nPares chave-valor do dicionário:")
for chave, valor in aluno.items():
    print(f"{chave} -> {valor}")

3. A Função range(): Gerando Sequências Numéricas 🔢

A função range() é uma ferramenta extremamente útil em Python, especialmente quando usada em conjunto com o loop for. Ela gera uma sequência de números inteiros. É importante notar que range() não cria uma lista de números na memória; em vez disso, ela gera os números conforme são necessários, o que a torna muito eficiente para grandes sequências.

Sintaxes da Função range()

Existem três formas principais de usar range():

1. range(stop)

Gera números de 0 até stop-1.

# Exemplo: range(5) gera 0, 1, 2, 3, 4
for i in range(5):
    print(i)

Saída:

0
1
2
3
4

2. range(start, stop)

Gera números de start (inclusive) até stop-1 (exclusive).

# Exemplo: range(2, 7) gera 2, 3, 4, 5, 6
for numero in range(2, 7):
    print(numero)

Saída:

2
3
4
5
6

3. range(start, stop, step)

Gera números de start (inclusive) até stop-1 (exclusive), incrementando pelo valor de step. O step pode ser positivo (para contagem progressiva) ou negativo (para contagem regressiva).

# Exemplo 1: range(0, 10, 2) gera 0, 2, 4, 6, 8
print("Números pares de 0 a 8:")
for par in range(0, 10, 2):
    print(par)
 
# Exemplo 2: range(10, 0, -1) gera 10, 9, 8, ..., 1
print("\nContagem regressiva de 10 a 1:")
for regressivo in range(10, 0, -1):
    print(regressivo)

Saída:

Números pares de 0 a 8:
0
2
4
6
8

Contagem regressiva de 10 a 1:
10
9
8
7
6
5
4
3
2
1

4. Combinando for com range() 🤝

A combinação de for e range() é extremamente comum e poderosa. Ela permite que você execute um bloco de código um número específico de vezes ou acesse elementos de uma sequência usando seus índices.

Exemplo 1: Repetindo uma Ação N Vezes

# Repetir uma mensagem 3 vezes
for _ in range(3):
    print("Python é divertido!")

Saída:

Python é divertido!
Python é divertido!
Python é divertido!

Nota: Usamos _ (underscore) como nome da variável de iteração quando não precisamos usar o valor do contador dentro do loop. É uma convenção comum em Python para indicar que a variável é intencionalmente não utilizada.

Exemplo 2: Acessando Elementos de uma Lista por Índice

Embora seja mais "Pythonic" iterar diretamente sobre os itens de uma lista (for item in lista:), às vezes você precisa do índice do item. Para isso, range() é muito útil em conjunto com len() (que retorna o comprimento da lista).

minha_lista = ["A", "B", "C", "D"]
 
for indice in range(len(minha_lista)):
    print(f"O elemento no índice {indice} é {minha_lista[indice]}")

Saída:

O elemento no índice 0 é A
O elemento no índice 1 é B
O elemento no índice 2 é C
O elemento no índice 3 é D

Dica: Para casos onde você precisa tanto do índice quanto do valor, a função enumerate() é ainda mais elegante e Pythonic:

# Usando enumerate() para obter índice e valor simultaneamente
for indice, valor in enumerate(minha_lista):
    print(f"O elemento no índice {indice} é {valor} (com enumerate)")

A função enumerate() será explorada em mais detalhes em aulas futuras, mas é bom já ter uma ideia de sua existência!


5. Exercícios Conceituais para Fixação 🧠

Para garantir que você compreendeu bem os conceitos, tente responder a estas perguntas:

  1. Diferença fundamental: Qual a principal diferença de uso entre for item in lista: e for i in range(len(lista)):? Em que situação você usaria cada um?
  2. Saída de range(): Qual sequência de números será gerada por range(1, 10, 3)?
  3. Loop para pares: Como você usaria um loop for e a função range() para imprimir todos os números pares de 2 a 12 (inclusive)?
  4. Loop com string: Escreva um loop for que itere sobre a string "Programação" e imprima cada vogal encontrada.

6. Resumo e Próximos Passos 🚀

Parabéns! Você deu um grande passo no entendimento dos loops de repetição em Python.

Nesta aula, vimos:

  • A importância dos loops para automatizar tarefas e iterar sobre coleções.
  • Como usar o loop for para percorrer listas, strings e dicionários.
  • A versatilidade da função range() para gerar sequências numéricas com diferentes parâmetros (stop, start, stop, start, stop, step).
  • A poderosa combinação de for e range() para repetir ações um número específico de vezes ou acessar elementos por índice.

No nosso próximo encontro, exploraremos outro tipo de loop, o while, e aprenderemos sobre as instruções break e continue, que nos dão ainda mais controle sobre o fluxo dos nossos loops!

Continue praticando e experimentando com os exemplos. A melhor forma de aprender é fazendo! 💪

© 2025 Escola All Dev. Todos os direitos reservados.

Loops de Repetição com for e a função range() - Fundamentos do Python para Iniciantes | escola.all.dev.br