Boa noite,
Estou praticando o que aprendi no curso 'Continuado com Collections' e aplicando classe junto, mas apareceu um problema que não consegui resolver.
Quando chamo a representação da string da classe, um dos metodos esta vindo antes da representação de string e não onde defini para aparecer. Poderiam me explicar o que esta causando isso e como resolver?
from collections import Counter
class ExtraiTexto:
def __init__(self, texto):
self.texto = texto.upper()
self.caracteres = dict(self.conta_caracteres())
self.total_caracteres = self.soma_total_caractere()
def conta_caracteres(self):
aparicoes = Counter(self.texto)
if ' ' in aparicoes:
aparicoes['ESPAÇO'] = aparicoes.pop(' ')
if '\n' in aparicoes:
del aparicoes['\n']
return aparicoes.most_common(10)
def soma_total_caractere(self):
total_de_caracteres = sum(self.caracteres.values())
return total_de_caracteres
def visualizar_10_mais_usadas(self):
for letra, frequencia in self.caracteres.items():
print(letra, ' = ', frequencia)
def __str__(self):
return f'''
total de caracteres: {self.total_caracteres}
10 letras mais usadas:
{self.visualizar_10_mais_usadas()}
'''
def formata_caracteres(self):
for letra, frequencia in self.caracteres.items():
print(f'{letra} = {frequencia} vezes')
texto3 = '''
O menino quer um burrinho
para passear.
Um burrinho manso,
que não corra nem pule,
mas que saiba conversar.
O menino quer um burrinho
que saiba dizer
o nome dos rios,
das montanhas, das flores,
– de tudo o que aparecer.
continua...
'''
contar = ExtraiTexto(texto3)
print(contar)
resultado do código:
ESPAÇO = 31
O = 20
R = 19
A = 19
E = 18
N = 16
U = 15
S = 13
M = 10
I = 10
total de caracteres: 171
10 letras mais usadas:
None