Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Contador de carcteres de 1 palavra (ignora as outras) não considera entrada vazia

1 resposta

Olá, Herley. Como vai?

É um excelente desafio de lógica! Para criar uma função que conte os caracteres de apenas uma palavra, ignore as demais palavras inseridas e ainda desconsidere entradas vazias, precisamos trabalhar com validação de strings e manipulação de textos em Python.

A melhor abordagem para esse problema envolve duas etapas principais:

  1. Remover espaços extras e dividir a entrada: O método .strip() elimina espaços em branco invisíveis no início e no fim da string. O método .split() divide o texto em uma lista de palavras baseando-se nos espaços.
  2. Validar a entrada: Verificamos se o usuário apertou apenas "Enter" (string vazia) antes de prosseguir com a contagem.

Veja um exemplo prático e didático de como estruturar essa função em Python:

def contar_caracteres_primeira_palavra(texto):
    # O método strip() remove espaços vazios antes e depois do texto
    texto_limpo = texto.strip()
    
    # Validação: se o texto estiver vazio após o strip, ignora a entrada
    if not texto_limpo:
        return "Entrada inválida: nenhuma palavra foi digitada."
    
    # O split() divide o texto por espaços e cria uma lista de palavras
    palavras = texto_limpo.split()
    
    # Pegamos apenas a primeira palavra da lista (índice 0)
    primeira_palavra = palavras[0]
    
    # O len() conta o número de caracteres da palavra selecionada
    total_caracteres = len(primeira_palavra)
    
    return f"A primeira palavra é '{primeira_palavra}' e ela tem {total_caracteres} caracteres."

# Exemplos de uso para testes:
print(contar_caracteres_primeira_palavra("  "))               # Entrada vazia / apenas espaços
print(contar_caracteres_primeira_palavra("Python"))           # Apenas uma palavra
print(contar_caracteres_primeira_palavra("Alura curso web"))  # Múltiplas palavras (vai isolar 'Alura')

O que está acontecendo no código:

  • Tratamento de strings vazias: Quando o usuário digita apenas espaços ou deixa o campo em branco, o texto.strip() se transforma em uma string vazia "". Em Python, uma string vazia é avaliada como False. Por isso, a condição if not texto_limpo: consegue capturar essa entrada inválida perfeitamente.
  • Isolando a primeira palavra: Se o usuário digitar "Alura curso web", o método .split() transformará isso na lista ['Alura', 'curso', 'web']. Ao acessarmos o índice [0], garantimos que o código trabalhará exclusivamente com a palavra "Alura", ignorando completamente o restante da frase.
  • Contagem precisa: A função len() vai medir exatamente o tamanho dessa palavra isolada.

Essa estrutura deixa seu código robusto contra falhas de digitação do usuário e cumpre todos os requisitos do exercício.

Espero que possa ter lhe ajudado!