Manipulação de Strings em Python

Um tipo de dados bastante usado no dia a dia são as strings, ou cadeias de caracteres (ou sequências de caracteres). O tipo de dados string, ou str como é chamado em Python, possui várias operações úteis associadas a ele. Essas operações tornam Python uma linguagem bastante propícia para manipulação de textos.

Os exemplos abaixo ilustram o tipo de dados string e as operações associadas a ele.

# Imprimindo uma string.
s = "Olá, mundo!"
print(s)

# Tipo de uma string.
type(s)

# Tamanho de uma string.
len(s)

# Concatenação
print("Meu Brasil " + "brasileiro")

# Substitui uma substring por alguma outra coisa.
s1 = s.replace("mundo", "meu abacate")

print(s1)

# A string s começa com "Olá"?
print(s.startswith("Olá"))

# A string s termina com "mundo"?
print(s.endswith("mundo"))

# Quantas ocorrências da palavra "abacate" a string s1 possui?
print(s1.count("abacate"))
Olá, mundo!
<class 'str'>
11
Meu Brasil brasileiro
Olá, meu abacate!
True
False
1

Strings em Python são muito flexíveis e nos permitem executar as mais diversas operações de maneira simples. Vejamos mais exemplos:

# Como "capitalizar" (transformar em maiúsculas).
s = "OrDem E pRoGrEsSo"
print(s.capitalize())

# Como verificar se uma string só possui números.
'12345'.isdigit()
'12345abc'.isdigit()

# Como verificar se uma string é alfanumérica (só possui letras e números).
'12345abc'.isalnum()
Ordem e Progresso
True
False
True

Slicing de Strings

Além das operações vistas acima, podemos acessar caracteres específicos de uma string em Python usando a notação [], que, como veremos a seguir, é a mesma notação usada para se acessar elementos de uma lista.

s = "Olá, mundo!"
s[0]
'O'

Podemos também acessar fatias ou "slices" de uma string ou lista em Python. Esta notação é muito concisa e poderosa, então é importante que você a entenda bem.

Segundo essa notação, uma fatia de uma string pode ser acessada se fornecermos os índices do começo e do final da fatia que desejamos analisar, como mostrado abaixo:

s[1:3]
'lá'

Note que os índices de uma string começam do 0 e não do 1.

Além disso, perceba que o índice do final da fatia não é incluído nela. No exemplo acima, o [1:3] nos retornou dois caracteres e não 3. Foram retornados o caracter no índice 1 e o caracter no índice 2, mas não o caracter no índice 3.

Se omitirmos o índice de ínicio da fatia ou o de final (ou ambos), o ínicio e o final da string serão considerados, respectivamente. Veja os exemplos:

s = "Olá, mundo!"
print(s[:3])

print(s[5:])

# Retorna toda a string
print(s[:])
Olá
mundo!
Olá, mundo!

Um exemplo útil do uso da técnica de slicing para manipulação de strings é inverter uma palavra ou frase usando somente operações de slicing:

frase = "Mundo mundo vasto mundo"
print(frase[::-1])
odnum otsav odnum odnuM

No exemplo acima, usamos um terceiro parâmetro do recurso de slicing para indicar que retornaríamos toda a frase (os ::) e logo em seguida dissemos que faríamos isso de trás para frente (por meio do -1).

Os exemplos abaixo mostram as várias opções de formatação de strings.

# A função print concatena strings com um espaço entre elas.
print("Admirável", "Mundo", "Novo")

# A função print converte números para strings.
print(1984, "George Orwell")


# As strings somadas com + são concatenadas sem espaços entre elas.
print("#" + "Programando" + "Em" + "Python")


# Forma mais avançada de formatação de strings
frase = 'Um triângulo de base igual a {0} e altura igual a {1} possui área igual a {2}.'.format(3, 4, 12)
print(frase)
Admirável Mundo Novo
1984 George Orwell
#ProgramandoEmPython
Um triângulo de base igual a 3 e altura igual a 4 possui área igual a 12.

As versões mais novas do Python introduziram um recurso chamado f-strings, que melhoram ainda mais a formatação de strings. Vejamos um exemplo:

# Formatação de strings com f-strings
linguagem = "Python"
f"Programando em {linguagem}"
print(frase)
Programando em Python

Resumo de Operações em Strings

A tabela abaixo mostra um resumo dos principais operadores para manipulação de strings em Python.

Tabela 1. Operações em strings
Operador Descrição Exemplo

+

concatena (soma) duas strings

'abra' + 'cadabra' retorna 'abracadabra'

*

repete (replica) uma string múltiplas vezes

'ha' * 3 retorna 'hahaha'

[i]

retorna o i-ésimo caracter da string

'Brasil'[0] retorna 'B'

[i:j]

retorna a substring que vai dos índices i até j - 1

'Brasil'[0:3] retorna 'Bra'

Nas próximas seções continuaremos a ver outros tipos de dados compostos em Python.