Exercícios Resolvidos de Arquivos

Ver Teoria

Enunciado

Ler um arquivo texto dado na entrada e contar a quantidade de cada letra (maiúscula ou minúscula) existente no arquivo. Ao final do processamento do arquivo gerar uma listagem indicando, para cada letra, o número de vezes em que ela aparece no arquivo.

Passo 1

Fala aí! Nesse exercício, a ideia é descobrir a quantidade de cada letra em um arquivo. Pra isso, a gente vai ter que contar com algumas gambiarras! Vem comigo...

Então, bora resolver! Vamos começar perguntando pro usuário qual o nome do arquivo que a gente precisa ler. Pra isso, vamos usar a função input().

Aí, quando a gente já tiver o nome, a gente pode abrir o arquivo. Mas se liga, como a gente vai só abrir pra ler e não vai mexer em nada, então a gente pode pedir só permissão de leitura (“r”).

Tipo assim, viu?! Aí agora a gente já tem o arquivo aberto e salvo na variável arq. Vamos contar as letras!

Passo 2

Cara, existem várias formas de fazer isso (assim como todas as resoluções de prog). Mas eu vou escolher fazer uma iteração por todas as linhas do arquivo. E depois, iterar por cada caractere em cada linha! Vamos usar dois laços for pra isso...

Repara também que a gente não pegou a linha pura. Aplicamos nela o método lower()! Isso porque o enunciado diz que a gente tem que desconsiderar letras maiúsculas e minúsculas, tratando como iguais. Então, uma ideia é transformar toda a linha em minúsculo (também poderia ser maiúsculo, com o método upper()).

Beleza! Porém, a gente só quer contar a quantidade de letras. Então, o próximo passo é verificar se esse caractere é uma letra. Então vamos checar usando um if:

Pronto! Agora só precisamos contar…. E pra isso, a gente pode criar, FORA DE TODOS OS LOOPS, uma lista com um item pra cada letra do alfabeto, em ordem alfabética. Aí, a gente só precisa incrementar no lugar certo toda vez que encontrarmos uma letra! Tipo assim, olha:

Agora sim! A gente tem uma lista com 26 elementos 0, um pra cada letra. Se a gente somar a quantidade de letras que tem em cada linha, no fim a gente vai ter a quantidade total de cada, né? Vamos fazer isso!

Passo 3

Mas se liga, como a gente vai saber a posição que tá o elemento certo na lista? Hmmm. Existem algumas formas… Mas vamos usar uma simples: usando o método de string index(). Esse método diz pra gente onde tá uma certa letra em uma string.

Repara que o índice da letra na string contendo todo o alfabeto é o mesmo índice da lista que a gente acabou de criar. Aí, a gente pode incrementar esse índice na lista de contadores!

E pronto! Depois de contar todas as letras, precisamos fechar o arquivo, como sempre. Pra isso, vamos usar, fora dos loops, o método .close().

E agora vamos exibir pro usuário a quantidade de cada letra!

Passo 4

Bom, pra exibir essa informação pro usuário, vamos usar a função print(). Só que a gente precisa usar um print() pra cada letra. Então, vamos usar ainda mais um for.

Além do for, também usamos formatação de string, ok? A gente bateu um papo sobre no tópico Operações com String aqui da playlist.

E, com isso, a gente finalizou o exercício! Te vejo no próximo, ok? É nós!

Resposta