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

Miniprojeto: Contador de caracteres.

Mini projeto:
O programa mostra a quantidade de caracteres e de letras de uma palavra, considerando também palavras compostas com hífen.

def contar_total(texto):
return len(texto)

def contar_letras(texto):
texto = texto.replace(" ", "")
texto = texto.replace("-", "")
return len(texto)

texto = input("Digite uma palavra: ")

if texto:
total = contar_total(texto)
letras = contar_letras(texto)
print(f"Essa palavra tem {total} caracteres, sendo {letras} letras.")
else:
print("Entrada vazia!")

1 resposta
solução!

Olá, Natalia. Como vai?

Parabéns pelo miniprojeto! Seu código está muito bem estruturado e resolve um problema comum de forma inteligente: a distinção entre tamanho da string e quantidade de letras.

O uso das funções separadas demonstra que você já compreendeu o conceito de responsabilidade única. Cada função faz apenas uma coisa, o que torna o código fácil de ler e manter.

Gostaria de destacar alguns pontos técnicos que ficaram ótimos:

  • Tratamento de Strings: O uso do .replace() encadeado na função contar_letras é uma solução muito eficaz para "limpar" a palavra antes da contagem.
  • Validação de Entrada: Ao usar if texto:, você protege seu programa contra erros caso o usuário apenas aperte "Enter" sem digitar nada. É uma excelente prática de robustez.

Dica de Refinamento: Otimizando o código

Para deixar seu código ainda mais "limpo" (seguindo o estilo Clean Code), você pode realizar as substituições em uma única linha ou usar uma abordagem mais abrangente para remover qualquer caractere que não seja uma letra.

Veja esta alternativa usando o método .isalpha(), que verifica se cada caractere é de fato uma letra:

def contar_letras(texto):
    # Cria uma nova string apenas com caracteres que são letras
    somente_letras = [char for char in texto if char.isalpha()]
    return len(somente_letras)

Por que isso é interessante?
Dessa forma, sua função não precisaria de vários .replace() caso o usuário digitasse, por exemplo, um ponto final ou um número por engano. O programa contaria apenas as letras de $A$ a $Z$.

Sua lógica de programação está muito sólida. Já pensou em expandir esse miniprojeto para contar também quantas vogais e consoantes existem na palavra?

Espero que possa ter lhe ajudado!