Capitalize a primeira letra de cada palavra em Python
-
Capitalize a primeira letra de cada palavra em Python usando o método
string.title() -
Capitalize cada palavra em Python usando o método
string.capwords() -
Coloque cada palavra em maiúscula em Python usando os métodos
string.split()estring.join()
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.