Capitalize a primeira letra de cada palavra em Python

Muhammad Waiz Khan 30 janeiro 2023
  1. Capitalize a primeira letra de cada palavra em Python usando o método string.title()
  2. Capitalize cada palavra em Python usando o método string.capwords()
  3. Coloque cada palavra em maiúscula em Python usando os métodos string.split() e string.join()
Capitalize a primeira letra de cada palavra em Python

Este tutorial explicará vários métodos para colocar em maiúscula a primeira letra de cada palavra na string em Python. Se tivermos uma string como hey! what's up? e queremos convertê-lo em Hey! What's Up?. Podemos fazer isso usando algum método disponível ou separando cada palavra da string, colocando a primeira letra de cada palavra em maiúscula e, em seguida, juntando a string novamente.

Também podemos ter strings como hey... what's up? e queremos manter o espaçamento original da corda. Este tutorial examinará os vários métodos para resolver esses problemas.

Capitalize a primeira letra de cada palavra em Python usando o método string.title()

O string.title() é um método embutido que pega uma string como entrada e retorna a string com cada palavra maiúscula no primeiro caractere. O método string.title() não altera o espaçamento original da string. O exemplo de código abaixo demonstra como usar o método string.title() para colocar cada letra de uma palavra em maiúscula em Python.

string = "hey! what's up?"
print(string)
print(string.title())

Resultado:

Hey! What's up?
Hey! What'S Up?

Como pode ser observado no exemplo acima, o método string.title() não funciona bem com os sinais de pontuação, pois coloca a letra em maiúscula após os sinais de pontuação.

Capitalize cada palavra em Python usando o método string.capwords()

O string.capwords(string, sep) do módulo string leva a string como o primeiro parâmetro e o sep como o segundo parâmetro e retorna a string com o primeiro caractere maiúsculo de cada palavra, separado na base do parâmetro sep. Se nenhum valor for passado para o parâmetro sep ou definido como None, os espaços em branco serão usados ​​como separador e um único espaço em branco substituirá um ou mais espaços em branco.

O código de exemplo abaixo mostra como usar o método string.capwords() para colocar cada palavra da string em maiúscula:

import string

mystring = "hey!   what's up?"
print(mystring)
print(string.capwords(mystring))

Resultado:

hey!   what's up?
Hey! What's Up?

O problema com este método é que ele irá perder palavras como 'hello' ou se passarmos o ' como o parâmetro sep, ele irá capitalizar what's para what'S, como mostrado no código de exemplo abaixo de:

import string

mystring = "'hello'   what's up?"
print(mystring)
print(string.capwords(mystring))
print(string.capwords(mystring, sep="'"))

Resultado:

'hello'   what's up?
'hello' What's Up?
'Hello'   what'S up?

Coloque cada palavra em maiúscula em Python usando os métodos string.split() e string.join()

O método string.split(separator,..) converte a string em uma lista usando o valor fornecido do parâmetro separator como o separador. O método string.join(iterable) pega o objeto iterável como entrada e o converte em uma string usando o argumento de string fornecido como o separador de palavras.

O código de exemplo a seguir demonstra como usar os métodos string.split() e string.join() para colocar a primeira letra de cada palavra em Python em maiúscula.

import re

s = "'hello'   what's up?"
print(s)
slist = []
for word in s.split():
    if word[0] in ("'", '"', "("):
        word = word[0] + word[1].upper() + word[2:]
        slist.append(word)
    else:
        word = word[0].upper() + word[1:]
        slist.append(word)
    new_string = " ".join(slist)
print(new_string)

Resultado:

'hello'   what's up?
'Hello' What's Up?

Como pode ser notado no exemplo acima, este método pode lidar com as aspas, substantivos possessivos e palavras entre parênteses. Mas o espaçamento original da string será perdido neste método.

Artigo relacionado - Python String