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!