Python:
Capitalizando uma string

Como Fazer:

Usando o Método Nativo do Python:

Python possui um método nativo .capitalize() para strings que facilita essa tarefa.

my_string = "hello world"
capitalized_string = my_string.capitalize()
print(capitalized_string)

Saída:

Hello world

Aqui está minha própria versão customizada de capitalize() que uso para construir este site. Eu precisei garantir que palavras especiais como HTML sempre permanecessem em caixa alta. Isso também demonstra doctests:

def capitalize(string: str) -> str:
    """
    Capitaliza uma string, ou seja, faz a primeira letra ficar maiúscula.
    Lida com casos especiais como "HTML".

    >>> capitalize("this is html, csv, xml, and http (no REPL).")
    'This is HTML, CSV, XML, and HTTP (no REPL).'

    >>> capitalize("this is json, VBA, an IDE, and yaml in the CLI.")
    'This is JSON, VBA, an IDE, and YAML in the CLI.'
    """
    return (
        string
            .capitalize()
            .replace('cli',  'CLI')
            .replace('csv',  'CSV')
            .replace('html', 'HTML')
            .replace('http', 'HTTP')
            .replace('ide',  'IDE')
            .replace('json', 'JSON')
            .replace('repl', 'REPL')
            .replace('vba',  'VBA')
            .replace('xml',  'XML')
            .replace('yaml', 'YAML')
    )

Lidando com Várias Palavras:

Para cenários onde você quer que cada palavra em uma string comece com uma letra maiúscula (como títulos), o método .title() pode ser aplicado.

my_title = "python programming essentials"
title_case = my_title.title()
print(title_case)

Saída:

Python Programming Essentials

Usando Bibliotecas de Terceiros:

Embora a biblioteca padrão do Python seja equipada para a capitalização básica de strings, bibliotecas como textblob podem oferecer um controle mais matizado, especialmente para o processamento de linguagem natural.

Primeiro, certifique-se de que você tenha o textblob instalado:

pip install textblob

Então, use-o para capitalizar strings, tendo em mente que o capitalizador do textblob pode funcionar de maneira diferente com base no contexto de uso:

from textblob import TextBlob

my_sentence = "this is a test sentence"
blob = TextBlob(my_sentence)
capitalized_blob = TextBlob(blob.string.capitalize())
print(capitalized_blob)

Saída:

This is a test sentence

Lembre-se, enquanto os métodos capitalize() e title() são universalmente úteis, o uso de bibliotecas como textblob pode proporcionar flexibilidade adicional para aplicações específicas.