1
resposta

[Projeto] Resolução

def conta_vogais(texto: str) -> int:
  vogais = {'a', 'e', 'i', 'o', 'u'}
  contagem_vogal = 0
  if texto == "sair":
    return None
  for char in texto:
    if char in vogais:
      contagem_vogal += 1
      continue
  return contagem_vogal

def obter_mensagem(mensagem: str) -> int:
  while True:
    texto = input(mensagem).strip().lower()
    numero_vogais = conta_vogais(texto)
    return numero_vogais
  
def executar():
  while True:
    numero_de_vogais = obter_mensagem("Digite um texto (ou 'sair' para encerrar): ")

    if numero_de_vogais == None:
      print("Encerrando...")
      break
    
    if numero_de_vogais == 0:
      print("Não foi encontrado nenhuma vogal")
    elif numero_de_vogais > 1:
      print(f"O texto contém {numero_de_vogais} vogais.")
    else:
      print(f"O texto contém {numero_de_vogais} vogal.")


if __name__ == "__main__":
  executar()
1 resposta

Oi, Vinícius! Como vai?

Sua organização em funções e o uso de set para verificar as vogais ficaram ótimos; isso deixa a busca mais eficiente. Também chamou atenção o tratamento do lower() e strip(), que ajuda a padronizar a entrada e evitar erros.

Uma dica interessante para o futuro é usar uma forma mais enxuta para contar as vogais com sum e compreensão de lista. Veja este exemplo:


def conta_vogais(texto):
    vogais = "aeiou"
    return sum(1 for char in texto if char in vogais)

Esse código percorre o texto e soma 1 para cada caractere que for uma vogal, deixando a função mais direta.

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