Já vimos o quão poderoso o Python pode ser ao lidar com strings. Podemos pesquisar a string com a palavra-chave in, podemos pegar um pedaço de texto ao fatiá-la, obter seu comprimento, formatar com f-strings, etc. Isso é, na verdade, apenas a ponta do iceberg.
No Python, existem muitas funções utilitárias para lidar com manipulações de texto mais complexas. Existem mais de 40 utilitários que podem ser usados em diferentes cenários. A lista completa desses métodos pode ser encontrada na página oficial do Python: métodos de string. A boa notícia é que não é necessário memorizar todos eles. Quase todos têm um nome muito intuitivo e é fácil encontrar o que é necessário com uma rápida pesquisa no Google. Iremos cobrir algumas funções muito populares que são úteis de vez em quando e são usadas com frequência ao trabalhar com strings.
# .upper() transforma todas as letras em maiúsculas
s = 'What happened to Anna?'
up = s.upper()
print('Hi 123 this is Sally!'.upper()) # HI 123 THIS IS SALLY!
print(s) # What happened to Anna?
print(s.upper()) # WHAT HAPPENED TO ANNA?
print(up) # WHAT HAPPENED TO ANNA?
# .lower() transforma todas as letras em minúsculas
s = 'What happened to Anna?'
low = s.lower()
print('Hi 123 this is Sally!'.lower()) # hi 123 this is sally!
print(s) # What happened to Anna?
print(s.lower()) # what happened to anna?
print(low) # what happened to anna?
# .title() inicia todas as palavras com letra maiúscula (título)
s = 'What happened to Anna?'
title = s.title()
print('Hi 123 this is Sally!'.title()) # Hi 123 This Is Sally!
print(s) # What happened to Anna?
print(s.title()) # What Happened To Anna?
print(title) # What Happened To Anna?
# .capitalize() inicia a frase com letra maiúscula
s = 'What happened to Anna?'
capital = s.capitalize()
print('Hi 123 this is Sally!'.capitalize()) # Hi 123 this is sally!
print(s) # What happened to Anna?
print(s.capitalize()) # What happened to anna?
print(capital) # What happened to anna?
# .swapcase() inverte maiúsculas e minúsculas
s = 'What happened to Anna?'
swapped = s.swapcase()
print('Hi 123 this is Sally!'.swapcase()) # hI 123 THIS IS sALLY!
print(s) # What happened to Anna?
print(s.swapcase()) # wHAT HAPPENED TO aNNA?
print(swapped) # wHAT HAPPENED TO aNNA?
É importante notar que os métodos de string não modificam a variável original. Eles criam um novo valor e o retornam. O valor original permanece o mesmo. Portanto, ao chamar a.lower(), o valor de a não muda. Ele permanece o mesmo, mas lower() retorna um novo valor que contém a versão em minúsculas de a.
Desafio
Você recebe um comando e um trecho de texto. Sua tarefa é aplicar esse comando ao texto.
O comando pode ser qualquer um de: upper, lower, capitalize, title, swap.
O comando também pode ser representado com letras maiúsculas e minúsculas. O tratamento do comando não deve ser sensível a maiúsculas e minúsculas.
A primeira linha do programa contém o comando. A segunda linha contém o texto que precisa ser modificado.
A saída deve ser uma única linha - o texto transformado.