1
resposta

[Projeto] Contagem de vogais com acento

Verifiquei que a contagem de vogais não incluia as vogais com acentos
Pedi ajuda a Luri para alterar o código e ela me deu a seguinte opção:

import unicodedata

def contar_vogais(texto):
vogais = "aeiou"
quantidade = 0

# Remove acentos do texto
texto_sem_acento = ''.join(
    c for c in unicodedata.normalize('NFD', texto)
    if unicodedata.category(c) != 'Mn'
)

for letra in texto_sem_acento.lower():
    if letra in vogais:
        quantidade += 1

return quantidade

texto = input("Digite um texto: ")

print(f"O texto contém {contar_vogais(texto)} vogais.")

Espero que ajude.

1 resposta

Oi, Mayse! Como vai?

É muito bacana ver a iniciativa de identificar um problema e pedir ajuda para resolvê-lo.

Você verificou que a contagem de vogais não incluía as vogais com acentos e, ao pedir ajuda à Luri para alterar o código, chegou a uma solução bastante interessante. O uso do módulo unicodedata para normalizar o texto é uma abordagem eficiente e muito comum em projetos que lidam com a língua portuguesa, justamente porque nosso idioma possui muitas vogais acentuadas que precisam ser consideradas na contagem.

A lógica do projeto funciona assim: a função contar_vogais recebe um texto, gera uma versão chamada texto_sem_acento por meio da normalização NFD e, em seguida, percorre cada letra com um laço for, verificando se ela está entre as vogais básicas. A variável quantidade vai acumulando o total e, ao final, o resultado é exibido ao usuário.

Uma dica complementar para enriquecer ainda mais o projeto é combinar essa abordagem com o método isalpha(), que garante que apenas letras sejam avaliadas, evitando que espaços ou pontuações interfiram na contagem. Veja um exemplo simples:


texto = input("Digite um texto: ")
contador = 0

for letra in texto.lower():
    if letra.isalpha() and letra in "aeiou":
        contador += 1

print(contador)

Esse código percorre o texto, verifica se cada caractere é uma letra válida e depois confere se é vogal, somando ao contador. É uma forma prática e direta de garantir mais precisão na contagem.

Continue explorando e compartilhando suas descobertas. O aprendizado em comunidade é sempre mais rico.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Você já pensou em expandir o projeto para também contar consoantes ou exibir a frequência de cada vogal separadamente no texto?

Conteúdos relacionados
Praticando Python: trabalhando com projetos
List comprehension Python: como simplificar seu código