Métodos de string em Python: todos explicados com exemplos
Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução
As strings em Python vêm com uma caixa de ferramentas de métodos embutidos. Esses métodos permitem trocar entre maiúsculas e minúsculas, remover espaços sobrando, procurar palavras, dividir textos e muito mais.
Pense nos métodos de string como os aplicativos do seu celular. Cada um faz um trabalho específico. Você não precisa decorar todos agora: é suficiente saber que eles existem, para escolher o certo quando precisar.
Neste tutorial você vai conhecer todos os principais métodos de string, com exemplos ao vivo que você pode executar e modificar. No final, você vai conseguir limpar, pesquisar, dividir e transformar qualquer texto que aparecer no seu caminho.
Como converter strings para maiúsculas em Python
O Python oferece cinco métodos para mudar a caixa (maiúsculas e minúsculas) de uma string. Os dois mais usados são upper() e lower().
HELLO, WORLD! hello, world! Hello, World! Hello, world! HELLO, WORLD!
upper() converte todas as letras para maiúsculas. lower() converte todas as letras para minúsculas. Esses dois são os que você vai usar com mais frequência.
title() coloca em maiúscula a primeira letra de cada palavra, como no título de um livro em inglês. capitalize() coloca em maiúscula só a primeira letra da string e deixa todo o resto em minúsculas.
swapcase() inverte todas as letras: maiúsculas viram minúsculas e vice-versa. Não é muito comum, mas é útil quando você precisa.
User said yes! Ada Lovelace
Como remover espaços em branco de strings em Python
Espaços extras e caracteres invisíveis aparecem nas strings o tempo todo: na entrada do usuário, na leitura de arquivos ou ao copiar e colar. A família strip() do Python resolve isso muito bem.
' hello, world! ' 'hello, world!' 'hello, world! ' ' hello, world!'
strip() remove os espaços em branco das duas pontas de uma string. Pense nisso como tirar a casca dos dois lados de um pão de forma.
lstrip() corta só o lado esquerdo. rstrip() corta só o lado direito. O "l" e o "r" vêm de "left" (esquerda) e "right" (direita).
Usamos repr() no exemplo para você conseguir enxergar os espaços. Normalmente, o print() esconderia os espaços no final.
report.txt https://example.com
Como procurar texto dentro de uma string em Python
O Python oferece várias formas de procurar um texto dentro de uma string. As mais importantes são find(), count(), startswith() e endswith().
Como usar find() e index() em Python
find() informa onde uma substring aparece pela primeira vez. Ele retorna o índice (o número da posição) da primeira ocorrência, contando a partir de 0.
7 2 -1 3 11
Quando find() não encontra a substring, ele retorna -1. É o jeito dele de dizer "não encontrei".
index() faz o mesmo trabalho que find(), com uma diferença importante: se a substring não for encontrada, ele lança um ValueError em vez de retornar -1.
text = "hello world"
result = text.find("xyz")
print(result) # -1 (safe, no crash)text = "hello world"
# result = text.index("xyz")
# ValueError: substring not found
# Use index() only when you're SURE
# the substring exists
result = text.index("world")
print(result) # 6Como contar ocorrências em uma string com count()
count() informa quantas vezes uma substring aparece na string. Ele diferencia maiúsculas de minúsculas, então "The" e "the" são contados separadamente.
3 4 0 0
Como verificar o início e o fim de uma string em Python
startswith() e endswith() retornam True ou False. Eles são perfeitos para verificar extensões de arquivo, prefixos de URL ou qualquer padrão nas pontas de uma string.
True True False True
Como substituir texto em uma string em Python
replace() troca todas as ocorrências de uma substring por outra. É como o recurso de localizar e substituir de um editor de texto.
I like dogs. Cats are great. I have two dogs. I like dogs. Cats are great. I have two cats.
O terceiro argumento é opcional. Ele limita quantas substituições acontecem. Sem ele, replace() troca todas as ocorrências que encontrar.
Lembre-se: replace() diferencia maiúsculas de minúsculas. "cats" e "Cats" são tratadas como substrings diferentes.
Como dividir uma string em Python
split() corta uma string em uma lista de strings menores. Por padrão, ele divide em qualquer espaço em branco (espaços, tabulações, quebras de linha).
['Python', 'is', 'easy', 'to', 'learn'] ['Alice', '25', 'New York', 'Engineer'] John Smith Jr.
O primeiro argumento é o delimitador: o caractere (ou a string) onde a divisão acontece. O segundo argumento limita o número de divisões.
rsplit() funciona do mesmo jeito, mas divide a partir da direita. Isso faz diferença quando você usa um limite.
['home', 'user/documents/report.txt'] ['home/user/documents', 'report.txt']
Como juntar uma lista em uma string em Python
join() é o inverso de split(). Ele recebe uma lista de strings e cola todas elas com um separador. O separador é a string em que você chama o join().
Python is awesome Python-is-awesome Python, is, awesome Python is awesome
A sintaxe parece invertida no começo: separator.join(list). Leia assim: "use este separador para juntar aquela lista".
Um padrão comum é dividir uma string, modificar os pedaços e juntar tudo de novo.
PYTHON IS EASY TO LEARN Alice,25,New York
Como verificar o conteúdo de uma string em Python
O Python tem uma família de métodos is____() que retornam True ou False conforme o que a string contém. Eles são ótimos para validar a entrada do usuário.
True False True False True False True False
isalpha() verifica se há só letras. isdigit() verifica se há só dígitos. isalnum() verifica se há só letras ou dígitos (alfanumérico). isspace() verifica se há só espaços em branco.
Todos esses métodos retornam False para strings vazias. Uma string vazia não tem nenhum caractere para testar, então nada passa na verificação.
"player42" is a valid username You entered the number 42
Como preencher e alinhar strings em Python
Às vezes você precisa que um texto tenha uma largura fixa: em tabelas, recibos ou numa saída organizada no terminal. Os métodos de preenchimento do Python adicionam caracteres para completar o espaço.
hi ----hi---- hi........ ........hi 00042 007
center() centraliza a string dentro da largura indicada. ljust() alinha à esquerda e preenche à direita. rjust() alinha à direita e preenche à esquerda.
zfill() é um atalho para preencher números com zeros à esquerda. É perfeito para números de pedido, registros de horário ou nomes de arquivo como image_007.png.
Item Price ----------------------- Coffee $4.50 Sandwich $8.99 Cookie $2.25 ----------------------- Total $15.74
Como encadear métodos de string em Python
Como todo método de string retorna uma string nova, você pode chamar outro método sobre o resultado. Isso se chama encadeamento de métodos.
hello world! hello world!
Leia as cadeias da esquerda para a direita: primeiro strip, depois lower, depois replace. Cada método trabalha sobre o resultado do anterior.
Exercícios práticos
Hora de colocar esses métodos de string para trabalhar! Cada exercício foca em um grupo diferente de métodos que você acabou de aprender.
Você tem uma string bagunçada guardada na variável user_input. Ela tem espaços extras dos dois lados e letras maiúsculas aleatórias.
Limpe a string:
1. Removendo os espaços em branco das duas pontas
2. Convertendo tudo para minúsculas
Exiba o resultado limpo. A saída deve ser:
hello pythonConte quantas vezes a palavra "the" aparece na frase abaixo. Use o método count().
Exiba o resultado exatamente neste formato:
the appears 4 timesDica: converta para minúsculas primeiro, para contar tanto "the" quanto "The".
Substitua todas as ocorrências de "JavaScript" por "Python" na frase abaixo e exiba o resultado.
Saída esperada:
I love Python. Python is great. Learning Python is fun.Você tem uma linha de valores separados por vírgula. Divida a linha em valores individuais e exiba cada um em uma linha própria.
Saída esperada:
Alice
25
New York
EngineerEste código tenta encontrar a posição de "Python" em uma frase. Ele funciona quando a palavra existe, mas quebra quando ela não existe.
Corrija o código para que ele:
"Word not found" quando a palavra não estiver na fraseSaída esperada:
Found at position 7
Word not foundDica: o bug é que index() quebra quando a palavra não existe. Qual método retorna -1 em vez de quebrar?
Escreva um programa que valide um nome de usuário de acordo com estas regras:
Três nomes de usuário foram fornecidos. Para cada um, exiba "Valid" se ele passar nas duas regras, ou "Invalid" se falhar em alguma delas.
Saída esperada:
player42: Valid
ab: Invalid
hello world!: InvalidResumo: guia rápido dos métodos de string em Python
Aqui está uma referência rápida de todos os métodos vistos neste tutorial:
| Método | O que faz | Exemplo |
|---|---|---|
upper() | Tudo em maiúsculas | "hi".upper() → "HI" |
lower() | Tudo em minúsculas | "HI".lower() → "hi" |
title() | Maiúscula no início de cada palavra | "hi there".title() → "Hi There" |
capitalize() | Maiúscula só na primeira letra | "hi there".capitalize() → "Hi there" |
strip() | Remove espaços das pontas | " hi ".strip() → "hi" |
find() | Posição da substring (-1 se não existir) | "hello".find("ll") → 2 |
count() | Conta ocorrências | "banana".count("a") → 3 |
startswith() | Verifica o início | "hello".startswith("he") → True |
endswith() | Verifica o final | "file.py".endswith(".py") → True |
replace() | Troca substrings | "hi".replace("hi", "bye") → "bye" |
split() | Divide em uma lista | "a,b,c".split(",") → ["a","b","c"] |
join() | Junta uma lista | ",".join(["a","b"]) → "a,b" |
isdigit() | Só dígitos? | "123".isdigit() → True |
isalpha() | Só letras? | "abc".isalpha() → True |
isalnum() | Letras ou dígitos? | "abc1".isalnum() → True |
zfill() | Preenche com zeros | "42".zfill(5) → "00042" |
Você não precisa decorar esta tabela. O importante é saber que esses métodos existem, para poder consultá-los quando precisar.
O que vem a seguir?
No próximo tutorial, Formatação de strings em Python, você vai aprender a controlar exatamente como os valores aparecem dentro das strings. Você vai dominar a formatação com f-strings, o alinhamento, a formatação de números e muito mais.