Manipulação de Strings

Caracteres de Escape

Um caractere de escape é criado digitando uma barra invertida \ seguida pelo caractere que você deseja inserir.

Caractere de EscapeImprime como
\'Aspas simples
\"Aspas duplas
\tTabulação
\nNova linha (quebra de linha)
\\Barra invertida
\bBackspace
\oooValor octal
\rRetorno de Carro
# Caracteres de escape: use barra invertida para inserir caracteres especiais
# \n = nova linha, \' = aspas simples
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

Strings Brutas (Raw Strings)

Uma string bruta ignora completamente todos os caracteres de escape e imprime qualquer barra invertida que apareça na string.

# String bruta (prefixo r): trata barras invertidas como caracteres literais
print(r"Hello there!\nHow are you?\nI\'m doing fine.")  # \n impresso literalmente
Hello there!\nHow are you?\nI\'m doing fine.

Strings brutas são usadas principalmente para definição de expressões regulares.

Quiz

Faça login para responder este quiz e acompanhar seu progresso de aprendizagem

O que uma string bruta (prefixada com r) faz em Python?
A. Converte todos os caracteres para maiúsculas
B. Trata barras invertidas como caracteres literais, ignorando sequências de escape
C. Remove todos os espaços em branco
D. Inverte a string

Strings Multilinhas

print(
"""Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob"""
)
Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob

Indexação e Fatiamento de Strings

H   e   l   l   o       w   o   r   l   d    !
0   1   2   3   4   5   6   7   8   9   10   11

Indexação

# Indexação de string: acessa caracteres pela posição (base 0)
spam = 'Hello world!'

spam[0]  # Retorna o primeiro caractere: 'H'
'H'
spam[4]
'o'
spam[-1]
'!'

Fatiamento (Slicing)

# Fatiamento de string: extrai substring usando a sintaxe [início:fim]
spam = 'Hello world!'

spam[0:5]  # Retorna caracteres do índice 0 até 4: 'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
Quiz

Faça login para responder este quiz e acompanhar seu progresso de aprendizagem

O que spam[::-1] faz com uma string?
A. Retorna o primeiro caractere
B. Retorna o último caractere
C. Inverte a string
D. Remove todos os caracteres
fizz = spam[0:5]
fizz
'Hello'

Os operadores in e not in

'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False

upper(), lower() e title()

Transforma uma string para maiúsculas, minúsculas e formato de título:

greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'

Métodos isupper() e islower()

Retorna True ou False após avaliar se uma string está em maiúsculas ou minúsculas:

spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False

Os métodos isX de string

MétodoDescrição
isalpha()retorna True se a string consiste apenas em letras.
isalnum()retorna True se a string consiste apenas em letras e números.
isdecimal()retorna True se a string consiste apenas em números.
isspace()retorna True se a string consiste apenas em espaços, tabulações e novas linhas.
istitle()retorna True se a string consiste apenas em palavras que começam com uma letra maiúscula seguida apenas por caracteres minúsculos.

startswith() e endswith()

'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
Quiz

Faça login para responder este quiz e acompanhar seu progresso de aprendizagem

O que startswith() retorna?
A. True se a string começa com a substring especificada, False caso contrário
B. A substring que corresponde ao início
C. O índice onde a substring começa
D. Uma nova string sem o prefixo

join() e split()

join()

O método join() pega todos os itens em um iterável, como uma lista, dicionário, tupla ou conjunto, e os une em uma string. Você também pode especificar um separador.

''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

split()

O método split() divide uma string em uma lista. Por padrão, ele usará espaço em branco para separar os itens, mas você também pode definir outro caractere de sua escolha:

'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My  name is  Simon'.split()
['My', 'name', 'is', 'Simon']
' My  name is  Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
Quiz

Faça login para responder este quiz e acompanhar seu progresso de aprendizagem

O que split() retorna quando chamado em uma string?
A. Uma string
B. Uma lista de strings
C. Uma tupla de strings
D. Um dicionário

Justificando texto com rjust(), ljust() e center()

'Hello'.rjust(10)
'     Hello'
'Hello'.rjust(20)
'               Hello'
'Hello World'.rjust(20)
'         Hello World'
'Hello'.ljust(10)
'Hello     '
'Hello'.center(20)
'       Hello       '

Um segundo argumento opcional para rjust() e ljust() especificará um caractere de preenchimento além do caractere de espaço:

'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'

Removendo espaços em branco com strip(), rstrip() e lstrip()

spam = '    Hello World     '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World     '
spam.rstrip()
'    Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'

O Método Count

Conta o número de ocorrências de um determinado caractere ou substring na string à qual é aplicado. Pode-se opcionalmente fornecer os índices de início e fim.

sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# retorna a contagem de 'e' após 'one sh' i.e. 6 caracteres desde o início da string
sentence.count('e', 6)
8
sentence.count('e', 7)
7

Método Replace

Substitui todas as ocorrências de uma determinada substring por outra substring. Pode-se opcionalmente fornecer um terceiro argumento para limitar o número de substituições. Retorna uma nova string.

text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
Quiz

Faça login para responder este quiz e acompanhar seu progresso de aprendizagem

O que o método replace() retorna?
A. Modifica a string original
B. Retorna None
C. Retorna uma nova string com as substituições feitas
D. Retorna uma lista de strings substituídas