Como Verificar se uma String Está em Title Case em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma string está em title case (título) em Python. O laboratório começa explicando o conceito de title case, um estilo de capitalização comumente usado em títulos e cabeçalhos, onde a primeira letra de cada palavra é capitalizada, exceto por palavras menores como artigos, preposições e conjunções.

Em seguida, você criará um script Python chamado title_case.py que inclui uma função para converter uma determinada string para title case. O script divide a string em palavras, capitaliza a primeira letra de cada palavra (excluindo palavras menores) e junta as palavras novamente. Finalmente, você executará o script e observará a saída, demonstrando a conversão de strings para title case.

Entenda o Title Case

Nesta etapa, você aprenderá sobre title case, um estilo comum de capitalização usado em títulos e cabeçalhos. Entender title case é essencial para formatar o texto corretamente e garantir a legibilidade.

Title case refere-se a um estilo onde a primeira letra de cada palavra é capitalizada, exceto por certas palavras menores, como artigos (a, an, the), preposições (of, in, to) e conjunções (and, but, or). No entanto, a primeira e a última palavras do título são sempre capitalizadas, independentemente do seu tipo.

Vamos começar criando um script Python para explorar title case.

  1. Abra o editor VS Code no ambiente LabEx.

  2. Crie um novo arquivo chamado title_case.py no diretório ~/project.

    touch ~/project/title_case.py
  3. Abra o arquivo title_case.py no editor.

  4. Adicione o seguinte código Python ao arquivo:

    def to_title_case(text):
        minor_words = ['a', 'an', 'the', 'of', 'in', 'to', 'and', 'but', 'or']
        words = text.split()
        title_cased_words = []
        for i, word in enumerate(words):
            if i == 0 or i == len(words) - 1 or word not in minor_words:
                title_cased_words.append(word.capitalize())
            else:
                title_cased_words.append(word.lower())
        return ' '.join(title_cased_words)
    
    text1 = "the quick brown fox"
    text2 = "learning python is fun"
    
    print(to_title_case(text1))
    print(to_title_case(text2))

    Este código define uma função to_title_case que converte uma determinada string para title case. Ele divide a string em palavras, capitaliza a primeira letra de cada palavra (exceto por palavras menores) e, em seguida, junta as palavras novamente.

  5. Salve o arquivo title_case.py.

  6. Execute o script usando o comando python no terminal:

    python ~/project/title_case.py

    Você deve ver a seguinte saída:

    The Quick Brown Fox
    Learning Python Is Fun

    Esta saída demonstra como o script converte as strings de entrada para title case, capitalizando a primeira letra de cada palavra significativa.

Use o Método istitle()

Nesta etapa, você aprenderá como usar o método istitle() em Python para verificar se uma string está em title case. O método istitle() é um método de string embutido que retorna True se a string estiver em title case e False caso contrário.

Para entender como istitle() funciona, vamos modificar o script title_case.py da etapa anterior.

  1. Abra o arquivo title_case.py no editor VS Code.

  2. Adicione o seguinte código ao arquivo:

    def to_title_case(text):
        minor_words = ['a', 'an', 'the', 'of', 'in', 'to', 'and', 'but', 'or']
        words = text.split()
        title_cased_words = []
        for i, word in enumerate(words):
            if i == 0 or i == len(words) - 1 or word not in minor_words:
                title_cased_words.append(word.capitalize())
            else:
                title_cased_words.append(word.lower())
        return ' '.join(title_cased_words)
    
    text1 = "the quick brown fox"
    text2 = "Learning Python is fun"
    text3 = to_title_case(text1)
    
    print(text1.istitle())
    print(text2.istitle())
    print(text3.istitle())

    Neste código, estamos usando o método istitle() para verificar se text1, text2 e text3 estão em title case. text1 está em letras minúsculas, text2 está parcialmente em title case, e text3 é o resultado da conversão de text1 para title case usando a função to_title_case da etapa anterior.

  3. Salve o arquivo title_case.py.

  4. Execute o script usando o comando python no terminal:

    python ~/project/title_case.py

    Você deve ver a seguinte saída:

    False
    False
    True

    Esta saída mostra que text1 e text2 não estão em title case (então istitle() retorna False), enquanto text3 está em title case (então istitle() retorna True).

Verifique a Capitalização Correta

Nesta etapa, você aprenderá como combinar a função to_title_case e o método istitle() para verificar se uma determinada string está devidamente capitalizada de acordo com as regras de title case. Isso envolve converter a string para title case e, em seguida, verificar se a string convertida está de fato em title case.

Vamos continuar modificando o script title_case.py das etapas anteriores.

  1. Abra o arquivo title_case.py no editor VS Code.

  2. Adicione o seguinte código ao arquivo:

    def to_title_case(text):
        minor_words = ['a', 'an', 'the', 'of', 'in', 'to', 'and', 'but', 'or']
        words = text.split()
        title_cased_words = []
        for i, word in enumerate(words):
            if i == 0 or i == len(words) - 1 or word not in minor_words:
                title_cased_words.append(word.capitalize())
            else:
                title_cased_words.append(word.lower())
        return ' '.join(title_cased_words)
    
    def check_title_case(text):
        title_cased_text = to_title_case(text)
        return title_cased_text.istitle()
    
    text1 = "the quick brown fox"
    text2 = "Learning Python is fun"
    text3 = "The Quick Brown Fox"
    
    print(check_title_case(text1))
    print(check_title_case(text2))
    print(check_title_case(text3))

    Neste código, definimos uma nova função check_title_case que recebe uma string como entrada, a converte para title case usando a função to_title_case e, em seguida, usa o método istitle() para verificar se a string convertida está em title case. Em seguida, testamos esta função com três strings diferentes: text1, text2 e text3.

  3. Salve o arquivo title_case.py.

  4. Execute o script usando o comando python no terminal:

    python ~/project/title_case.py

    Você deve ver a seguinte saída:

    True
    True
    True

    Esta saída mostra que text1 e text2 são convertidas para title case e o método istitle() retorna True. text3 já está em title case, e a função check_title_case confirma isso.

Resumo

Neste laboratório, você começa entendendo o conceito de title case, um estilo de capitalização onde a primeira letra de cada palavra é capitalizada, exceto por palavras menores como artigos, preposições e conjunções (com a primeira e a última palavras sempre capitalizadas).

Em seguida, você cria um script Python chamado title_case.py que define uma função to_title_case para converter uma determinada string para title case. O script divide a string em palavras, capitaliza as palavras apropriadas e as junta novamente. Finalmente, você executa o script para observar a saída, demonstrando a conversão de strings de exemplo para title case.