1
resposta

Contagem de vogais em um texto

import os

TEXTO = ''


def titulo_estilizado(texto):
    print(f'{'*' * (len(texto))} \n{texto.upper()} \n{'*' * (len(texto))}')


def titulo():
    os.system('cls')
    titulo_estilizado('Contador Textual')


def menu():
    titulo_estilizado('menu')
    print('\n1. Contar Quantidade de Palavras.')
    print('2. Contar Quantidade de Letras.')
    print('3. Contar Quantidade de Vogais.')
    print('4. Contar Quantidade de Consoantes.')
    print('5. Trocar Texto')
    print('6. Fechar Programa.')


def escolher_funcao():

    titulo()
    menu()
    while True:
        try:
            escolha = int(input('\nEscolha uma opção:'))
            if escolha == 1:
                quantidade_palavras()
            elif escolha == 2:
                quantidade_letras()
            elif escolha == 3:
                quantidade_vogais()
            elif escolha == 4:
                quantidade_consoantes()
            elif escolha == 5:
                trocar_texto()
            elif escolha == 6:
                fechar_programa()
                break
            else:

                print('Escolha Inválida!')
        except ValueError:
            os.system('cls')
            escolher_funcao()


def quantidade_palavras():
    os.system('cls')
    titulo_estilizado('Quantidade de Palavras')
    palavras = TEXTO.split()
    total = len(palavras)
    titulo_estilizado(f'O texto tem um total de {total} palavras!')


def quantidade_letras():
    os.system('cls')
    titulo_estilizado('Quantidade de Letras')
    letras = [letra for letra in TEXTO if letra.isalpha()]
    total = len(letras)
    titulo_estilizado(f'O texto tem um total de {total} letras!')


def quantidade_vogais():
    os.system('cls')
    titulo_estilizado('Quantidade de Vogais')
    vogais = 'aeiouAEIOU'
    total = sum(1 for vogal in TEXTO if vogal in vogais)
    titulo_estilizado(f'O texto tem um total de {total} vogais!')


def quantidade_consoantes():
    os.system('cls')
    titulo_estilizado('Quantidade de Consoantes')
    consoantes = 'bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXZ'
    total = sum(1 for consonante in TEXTO if consonante in consoantes)
    titulo_estilizado(f'O texto tem um total de {total} consoantes!')


def trocar_texto():
    os.system('cls')
    titulo_estilizado('Trocar Texto')
    text_input()
    escolher_funcao()


def fechar_programa():
    os.system('cls')
    titulo_estilizado('Programa Encerrado')
    exit()


def text_input():
    ## --- Essa função serve para receber um texto e armazenar em uma lista --- ##
    os.system('cls')
    titulo()
    global TEXTO
    TEXTO = input('Cole o texto aqui: ')


def main():
    text_input()
    escolher_funcao()


if __name__ == '__main__':
    main()
1 resposta

Olá, Daniel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções para estruturar melhor o programa, utilizou muito bem condicionais para controlar o fluxo das opções e ainda compreendeu a importância do tratamento de entradas para tornar a aplicação mais robusta.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar f-strings de forma mais segura ao imprimir caracteres repetidos, evitando ambiguidades de sintaxe. Assim:

def titulo_estilizado(texto):
    print(f"{'*' * len(texto)}")
    print(texto.upper())
    print(f"{'*' * len(texto)}")

Isso faz com que o título seja exibido corretamente, sem risco de erro de formatação.

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!