Minha contagem de palavras imprime somente uma palavra: !
Código no Main
importar função contar_palavras do módulo contador
from contador import contar_palavras
'''
solicitar frase ao usuário
frase = input("Digite uma frase: ")
quantidade = contar_palavras(frase)
print(f"A frase tem {quantidade} palavras.")'''
solicitar frase ao usuário
frase = input("Digite uma frase: ").strip()
verificar se a frase está vazia
if not frase:
# informar que a frase está vazia
print("A frase está vazia.")
se não estiver vazia
else:
# chamar a função contar_palavras
resultado = contar_palavras(frase)
# imprimir o resultado
if resultado:
# imprimir a contagem de palavras
print("Contagem de Palavras:")
# para cada palavra e sua quantidade no dicionário resultado
for palavra, quantidade in resultado.items():
# imprimir a palavra e sua quantidade
print(f"{palavra}:{quantidade}")
# se o dicionário estiver vazio
else:
# informar que a frase não contém palavras
print(f"Nenhuma palavra válida foi encontrada.")
Código no contador
função limpar texto
def limpar_texto(texto):
# converter para minúsculas
texto = texto.lower()
# remover pontuação
caracteres = ",.!|?;:\"'()[]{}"
# para cada caractere na string de caracteres
for char in caracteres:
# substituir o caractere por vazio
texto = texto.replace(char, "")
# retorna o texto limpo
return texto
função contar palavras
def contar_palavras(frase):
# limpar a frase
frase = limpar_texto(frase)
# verificar se a frase está vazia
if not frase.strip():
# retornar 0
return {}
# dividir a frase em palavras
palavras = frase.split()
# dicionário para armazenar a contagem de palavras
contagem = {}
# contar a ocorrência de cada palavra
for palavra in palavras:
# incrementar a contagem da palavra no dicionário
contagem[palavra] = contagem.get(palavra, 0) + 1
# contagem[palavra] = contagem.get(palavra, 0) + 1
return contagem