Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução de Atividades - 07 Contagem de vogais em um texto

import os

def limpar_terminal ():

    input ("Digite qualquer tecla para continuar: ")
    os.system('cls' if os.name == 'nt' else 'clear')

def formatar_textos (texto):

    texto = texto.lower()

    caracteres_rejeitados = ",./!?|%()""''{}[]"

    for caracter_teste in caracteres_rejeitados:

        texto = texto.replace (caracter_teste, "")

    return texto

def contar_vogais (texto):

    contador = 0
    vogais = "aeiouáéíóúàâêôãõ" #Não sei como considerar acentos de outra forma, então adicionei na base da constante mesmo

    for letra in texto:

        if letra in vogais:

            contador += 1
    
    return contador

def main ():

    frase_usuario = input ("Digite uma frase (ou 0 para sair do programa): ").strip()   # Dica do prof Daniel - .strip() retira espaços em branco

    if frase_usuario == "0":

        print ("\nObrigado por usar nossos serviços")
        limpar_terminal()
        return

    frase_limpa = formatar_textos (frase_usuario)
    numero_vogais = contar_vogais (frase_limpa)

    print (f"\nA frase do aluno contém: {numero_vogais} vogais")
    limpar_terminal()
    main()

main()

Nota: acho que eu adicionei uma função que não precisava usar, já que as vogais já estavam definidas.

1 resposta
solução!

Olá, Victor! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o lower() para padronizar o texto com Python, utilizou muito bem a função para organizar o código em etapas claras e ainda compreendeu a importância da laço for para percorrer e analisar cada caracter da frase.

Uma dica interessante para o futuro é aplicar o módulo unicodedata para tratar acentuação de forma mais robusta. Assim:

import unicodedata

def remover_acentos(texto):
    return ''.join(
        c for c in unicodedata.normalize('NFD', texto)
        if unicodedata.category(c) != 'Mn'
    )

frase = "Olá, programação é incrível!"
print(remover_acentos(frase))  # Saída: Ola, programacao e incrivel!

Isso faz com que a verificação de vogais ou outras análises não dependam de acentos.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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