1
resposta

[Projeto] Contagem de vogais em um texto

def contador_de_vogais(texto):
    vogais = 'aeiou'
    quantidade = 0

    for letra in texto.lower():
        if letra in vogais:
            quantidade += 1
    return quantidade
texto = input('Digite um texto: ')

print(f'O texto contem {contador_de_vogais(texto)} vogais.')
1 resposta

Olá, Apollo. Como vai?

Parabéns pela resolução do projeto! O seu código está excelente, muito bem estruturado, limpo e direto ao ponto.

Você aplicou ótimas práticas de programação em Python, merecendo destaque:

  • Uso do .lower(): Converter o texto para letras minúsculas antes de fazer a checagem foi uma jogada excelente. Isso garante que o seu programa conte as vogais corretamente mesmo se o usuário digitar palavras com letras maiúsculas (como "ABACAXI" ou "Python").
  • Uso do operador in: Utilizar if letra in vogais é a forma mais elegante e performática de fazer essa validação em Python, aproveitando ao máximo os recursos nativos da linguagem em vez de criar múltiplos if letra == 'a' or letra == 'e'....
  • Modularização: Criar uma função isolada (contador_de_vogais) para cuidar da lógica e deixar a interação com o usuário fora dela é uma excelente prática de arquitetura de código.

Para complementar o seu aprendizado e trazer novas possibilidades de resolver o mesmo problema em Python, compartilho duas sugestões de refatoração bem interessantes:

1. Tratando vogais com acentuação (Melhoria de Regra)

No momento, se o usuário digitar uma palavra como "Café", "Avião" ou "Único", o seu código não vai contar as letras é, ã, õ e Ú porque elas não estão na sua string de validação. Para deixar o seu projeto ainda mais robusto para a língua portuguesa, você pode expandir a variável vogais:

def contador_de_vogais(texto):
    # Incluindo vogais com acentos comuns e til
    vogais = 'aeiouáéíóúâêîôûãõàèìòù'
    quantidade = 0

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

2. Uma abordagem avançada com List Comprehension (Opcional)

O Python possui um recurso muito poderoso chamado List Comprehension (Compreensão de Lista), que permite resumir o laço for e a contagem em uma única linha de código. É uma sintaxe muito utilizada por desenvolvedores experientes para deixar o código mais conciso:

def contador_de_vogais_pythonico(texto):
    vogais = 'aeiouáéíóúâêîôûãõàèìòù'
    # Cria uma lista de 1s para cada vogal encontrada e soma tudo
    return sum(1 for letra in texto.lower() if letra in vogais)

O seu código original cumpre perfeitamente o objetivo da atividade e mostra que você assimilou muito bem os conceitos de manipulação de strings e estruturas de repetição.

Continue praticando e evoluindo nos seus projetos em Python!

Espero que possa ter lhe ajudado!