Módulo 9 - Repetições com for e range()

Percorrendo textos letra por letra

10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Percorrer um texto letra por letra com for letra in palavra.
  • Combinar for, if e contador para contar vogais de um texto.
  • Montar uma palavra ao contrário com acumulador de texto.
  • Entender que strings são sequências, a ideia que sustenta o módulo 12.

Texto também é sequência

Até aqui o for só comeu números de range(). Hora de revelar o alcance real dele: o for percorre qualquer sequência, e sequência é tudo que se deixa visitar item a item. Um texto se encaixa perfeitamente nessa definição, porque uma string é uma fileira de caracteres, um atrás do outro, cada um no seu lugar. Coloque uma palavra onde estava o range() e o for a percorre letra por letra, sem esforço extra.

for letra in "Python":
    print(letra)

# P
# y
# t
# h
# o
# n

Seis caracteres, seis voltas. A variável letra recebe um caractere por volta, na ordem da palavra.

Leia o cabeçalho em voz alta: para cada letra em Python. O código diz o que faz, quase em português. E note um detalhe que passa despercebido: o espaço também é caractere. Se a string fosse "bom dia", o for daria sete voltas, e numa delas a variável letra guardaria um espaço em branco. Textos guardam tudo o que você digitou, inclusive o que não se enxerga.

Contando vogais: for, if e contador juntos

Percorrer o texto é metade da graça; a outra metade é fazer algo com cada letra. O primeiro projeto clássico dessa dupla é contar vogais. A receita junta três peças que você já domina: o for visita cada letra, o if decide se ela interessa e um contador anota os acertos. Repare que o contador é um acumulador que soma sempre 1: o cofrinho da aula passada, agora recebendo uma moeda só quando a letra passa no teste.

palavra = "computador"
vogais = 0
for letra in palavra:
    if letra in "aeiou":
        vogais = vogais + 1
print("Vogais encontradas:", vogais)

# Vogais encontradas: 4

O in do if pergunta: esta letra está dentro do texto aeiou? Em computador, o-u-a-o respondem sim: 4 vogais.

Esse pequeno programa tem dois in fazendo trabalhos diferentes, e vale parar para distingui-los. O in do for é o motor da repetição: entrega uma letra por volta. O in do if é uma pergunta de pertencimento: letra in "aeiou" resulta True se a letra estiver dentro daquele texto, False se não. Mesmo nome, papéis distintos; o contexto diz qual é qual. Você vai reencontrar o in de pertencimento no módulo 10, procurando itens em listas.

Montando a palavra ao contrário

Fechamento com um truque satisfatório: inverter uma palavra. A ideia usa o acumulador de texto prometido na aula passada, com uma sacada na ordem da emenda. Se a cada volta você colar a letra nova ATRÁS do que já tem, reconstrói a palavra original. Mas se colar a letra nova NA FRENTE, cada letra empurra as anteriores para trás, e o resultado sai espelhado.

palavra = "amor"
invertida = ""
for letra in palavra:
    invertida = letra + invertida
print(invertida)  # roma

A emenda é letra + invertida, e não o contrário. A letra da vez entra na frente, e amor vira roma.

Acompanhe o filme volta a volta, porque é aí que a mágica se explica: invertida começa vazia; entra o a, e ela vale a; entra o m na frente, ma; entra o o na frente, oma; entra o r na frente, roma. Quatro voltas, palavra invertida. Troque a ordem da soma para invertida + letra e rode de novo: sai amor, a cópia fiel. Uma posição trocada numa linha muda o programa inteiro, e entender exatamente por que é o objetivo da aula.

Guarde a ideia central desta aula, porque ela é uma semente: strings são sequências. O módulo 12 é inteiro sobre textos, com ferramentas para caixa alta e baixa, busca, substituição e formatação, e tudo lá assenta sobre o que você acabou de ver. Desafio antes do checkpoint: conte quantas letras "a" existem em "banana" usando a receita das vogais. São 3, e o seu programa tem que concordar.

Teste rápido

Quantas voltas o loop for letra in "bom dia" executa, e por quê?

Perguntas frequentes

O for percorre frases inteiras ou só palavras soltas?
Percorre qualquer string, do tamanho que for: uma letra, uma palavra, um parágrafo. A visita é sempre caractere por caractere, incluindo espaços e pontuação. Para percorrer palavra por palavra existe o método split(), que divide a frase numa lista de palavras; ele entra no módulo 12.
Como descubro quantos caracteres um texto tem sem contar no loop?
Com a função len(): len("banana") devolve 6. É a mesma função que vai medir listas no módulo 10. Contar com loop, como fizemos com as vogais, vale quando a contagem tem um critério (só vogais, só a letra a); para o total puro, len() resolve em uma chamada.
Existe um jeito pronto de inverter uma string, sem montar o loop?
Existe um atalho famoso com fatias, palavra[::-1], que o módulo 12 apresenta direito. Aqui o loop é proposital: montar a inversão na mão ensina o acumulador de texto e a importância da ordem na emenda, e esse entendimento vale para muitos outros problemas.
Por que "A" maiúscula não conta como vogal no exemplo?
Porque a comparação de caracteres é exata: para o Python, "A" e "a" têm códigos internos diferentes, então "A" in "aeiou" dá False. A solução limpa é padronizar o texto antes de comparar, com o método lower(), que converte tudo para minúsculas. É a primeira coisa que o módulo 12 ensina.
Posso mudar uma letra do texto durante o loop, tipo trocar a por @?
Não diretamente: strings em Python são imutáveis, ou seja, não se altera uma letra no lugar. O caminho é construir um texto NOVO com as trocas, usando o acumulador desta aula, ou usar o método replace() do módulo 12. A imutabilidade parece limitação, mas evita uma família inteira de bugs.
O que acontece se o texto estiver vazio, como for letra in ""?
O loop não executa nenhuma volta, sem erro, igual ao range(0). É o comportamento natural: não há caracteres para visitar. Programas que recebem texto do usuário costumam checar isso antes (if palavra == "") para dar uma mensagem amigável em vez de silêncio.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.