Nesta página

Strings do Python: converter, limpar, localizar e formatar

As strings são o tipo de dados que você mais toca em Python: a entrada do usuário, o conteúdo de arquivos, páginas da web e linhas de CSV chegam todos como texto. É fácil subestimá-las, porque uma string do Python é imutável — nenhum método a altera no lugar; cada operação devolve uma nova string. Esta página organiza todos os 115 guias de strings do DelftStack de acordo com o trabalho que você está fazendo, ao longo de quatro linhas de tarefa: converter texto para outros tipos e de volta, limpar os caracteres que não pertencem, localizar e verificar o que uma string contém, e formatar ou substituir texto para a saída.

Operações com strings do Python em resumo: converter, limpar, localizar e formatar texto

O caminho de aprendizagem das strings

Comece com cinco minutos de noções básicas: como as strings são construídas, indexadas e fatiadas, e por que a imutabilidade significa que você deve sempre guardar o valor devolvido. Depois aprenda a localizar e limpar — find(), o operador in, strip() e replace() cobrem a maior parte do trabalho diário com texto. Em seguida, passe para a conversão, onde as strings trocam de lugar com listas, números, dicionários e bytes. Termine com a formatação e a substituição, onde as f-strings são o padrão e os estilos mais antigos aparecem apenas onde ainda merecem seu lugar. Cada passo abaixo é um grupo nesta página, na ordem em que devem ser aprendidos.

Noções básicas em cinco minutos: criar, unir e repetir

Uma string é uma sequência de caracteres entre aspas simples ou duplas; as aspas triplas abrangem várias linhas, e a indexação junto com o fatiamento lê qualquer parte dela. Dois fatos fazem a maior parte do trabalho: len() mede uma string, e construir uma mais longa sempre produz um novo valor.

  • How to Repeat String N Times in Python — Multiplica com * para um número fixo de cópias, depois repete e fatia para atingir um comprimento alvo exato, validando fontes vazias e comprimentos negativos.
  • Copiar String em Python — Seis rotas para duplicar — concatenação com string vazia, fatiamento completo, str(), %, format() e f-strings — depois de explicar por que a imutabilidade faz com que as duas variáveis compartilhem um único valor.
  • Crie uma string de várias linhas em Python — Aspas triplas para texto de várias linhas de verdade, barra invertida e concatenação entre parênteses para uma única linha lógica, e textwrap.fill() para saída de largura fixa.
  • Anexar uma string a outra em Python — + contra str.join(); join() vence com muitas peças porque cada + constrói uma nova string intermediária.

Converter: strings em listas, números e de volta

A conversão é onde o trabalho com strings ganha o seu valor: os dados chegam como texto e são usados como outra coisa. As listas são a porta mais movimentada, os números a seguinte; os contêineres se achatam com str() ou join(), e os bytes só atravessam por codificações explícitas. Um vizinho mora em outro lugar: converter um datetime em string pertence aos guias de Datetime — veja a seção Datetime do pilar Python.

Limpar e excluir: remova o que não pertence

A limpeza é o território caseiro deste cluster: páginas raspadas, exportações e entradas do usuário chegam com caracteres que nunca foram convidados. Escolha pela forma da sujeira: replace() para uma substring conhecida, translate() com uma tabela para um conjunto inteiro de caracteres de uma vez, e expressões regulares quando a sujeira é um padrão, não um literal.

Localizar, verificar e contar

Localizar é a maior demanda não atendida deste cluster: os leitores sabem o caractere que querem e precisam de sua posição, sua contagem, ou uma resposta de sim ou não. Mantenha nítida a divisão de trabalho — in responde se está, find() responde onde está o primeiro, index() responde onde e reclama em voz alta quando não há correspondência, e count() responde quantos há.

Maiúsculas e minúsculas, comparação e preenchimento

O caso é onde as comparações falham em silêncio: o Python compara por ponto de código Unicode, então o caso e as letras especiais contam todos. Normalize antes de comparar — lower() ou upper() para o texto comum, casefold() quando os pares Unicode devem corresponder — e preencha com ljust(), rjust(), center() ou zfill() para a apresentação.

  • Comparação de strings que não diferenciam maiúsculas de minúsculas em Python — Normaliza os dois lados com lower() ou upper(), depois apresenta o argumento Unicode a favor de casefold(), que torna equivalentes straße e STRASSE.
  • String com espaços em Python — O banco completo: ljust(), rjust(), center() com caracteres de preenchimento, mais os equivalentes com %, format() e f-strings para uma saída alinhada.
  • Comparar Strings em Python — A referência de operadores: == e != para igualdade, < e > para a ordem lexicográfica decidida pelo primeiro ponto de código diferente.
  • How to Compare Two Strings Character by Character in Python — Emparelha caracteres com zip() e conta as posições correspondentes, tratando explicitamente as entradas None e os comprimentos desiguais.

Formatar e substituir

Para código novo, formatar significa f-strings: os valores ficam dentro do modelo, onde você pode lê-los, e as especificações de formato controlam largura e precisão. str.format() continua sendo o certo quando o modelo vive separadamente ou é reutilizado, e a formatação com % sobrevive no código antigo que você continuará encontrando. A substituição obedece à imutabilidade como tudo o mais — você nunca edita uma string, você constrói a corrigida.

  • Substituir caractere em uma string em Python — Converter para lista e atribuir por índice, fatiar em torno de uma posição conhecida, ou replace() para cada correspondência — cada um devolve uma nova string.
  • Diferença entre% s e% d na formatação de string Python — %s aceita qualquer valor por meio da conversão com str(); %d exige um inteiro e trunca os decimais — a distinção herdada por trás da maioria das surpresas.
  • The sprintf() Function in Python — O Python não tem sprintf(); o trabalho recai sobre o operador %, sobre format(), f-strings, ou um invólucro feito à mão.
  • Substitua o caractere na string no índice em Python — O exemplo Meatloaf das duas maneiras — fatiar e reconstruir, ou mutar uma cópia em lista — estendido a vários índices.

Mapa de métodos de string

O Python vem com 47 métodos de string integrados, e este mapa encontra o certo rapidamente. Leia-o por verbos: a família is* verifica, os métodos de caso transformam, split e join desmontam e reconstroem, os métodos de busca localizam. Onde um guia se aprofunda em um método, a terceira coluna o vincula; uma célula vazia significa que a descrição de uma linha basta.

Método O que faz Aprofundar
capitalize() Coloca o primeiro caractere em maiúscula e o resto em minúscula Aprofundar
casefold() Minúsculas agressivas, feitas para a correspondência sem distinção de caso Aprofundar
center() Centraliza a string em um campo da largura dada Aprofundar
count() Conta as ocorrências não sobrepostas de uma substring Aprofundar
encode() Codifica a string para bytes na codificação escolhida Aprofundar
endswith() Testa se a string termina com um sufixo
expandtabs() Substitui os caracteres de tabulação por espaços
find() Menor índice de uma substring, ou -1 quando ausente Aprofundar
format() Formata valores em marcadores {}
format_map() Como format(), com valores tirados de um mapeamento
index() Menor índice de uma substring; levanta ValueError quando ausente Aprofundar
isalnum() Verdadeiro quando cada caractere é uma letra ou um dígito Aprofundar
isalpha() Verdadeiro quando cada caractere é alfabético
isascii() Verdadeiro quando cada caractere é ASCII
isdecimal() Verdadeiro quando cada caractere é um dígito decimal
isdigit() Verdadeiro quando cada caractere é um dígito Aprofundar
isidentifier() Verdadeiro quando a string é um identificador válido do Python
islower() Verdadeiro quando todas as letras estão em minúscula
isnumeric() Verdadeiro quando cada caractere é numérico
isprintable() Verdadeiro quando cada caractere é imprimível
isspace() Verdadeiro quando cada caractere é espaço em branco
istitle() Verdadeiro quando a string está em formato de título
isupper() Verdadeiro quando todas as letras estão em maiúscula
join() Une um iterável de strings usando esta string como separador Aprofundar
ljust() Justifica à esquerda em um campo da largura dada Aprofundar
lower() Devolve uma cópia em minúsculas Aprofundar
lstrip() Remove os caracteres iniciais (espaço em branco por padrão)
maketrans() Constrói uma tabela de tradução para translate() Aprofundar
partition() Divide no primeiro separador em uma tupla de três partes
removeprefix() Remove um prefixo quando ele está presente
removesuffix() Remove um sufixo quando ele está presente
replace() Substitui as ocorrências de uma substring por outra Aprofundar
rfind() Maior índice de uma substring, ou -1 quando ausente Aprofundar
rindex() Maior índice de uma substring; levanta ValueError quando ausente
rjust() Justifica à direita em um campo da largura dada Aprofundar
rpartition() Divide no último separador em uma tupla de três partes
rsplit() Divide por um separador, contando a partir da direita
rstrip() Remove os caracteres finais (espaço em branco por padrão)
split() Divide por um separador em uma lista Aprofundar
splitlines() Divide nos limites de linha em uma lista
startswith() Testa se a string começa com um prefixo Aprofundar
strip() Remove os caracteres iniciais e finais Aprofundar
swapcase() Devolve uma cópia com o caso de cada caractere invertido
title() Devolve uma cópia em formato de título, com cada palavra em maiúscula
translate() Mapeia os caracteres por meio de uma tabela de tradução Aprofundar
upper() Devolve uma cópia em maiúsculas Aprofundar
zfill() Preenche com zeros à esquerda até a largura dada Aprofundar

Perguntas frequentes

Como converto uma string em uma lista em Python?

Decida o que cada item deve ser e escolha depois a ferramenta correspondente. list(text) dá um item por caractere; text.split() dá palavras, e text.split(",") dá campos separados por um delimitador, preservando os campos vazios. Para um texto que já parece uma lista do Python, analise-o com ast.literal_eval() e verifique se o resultado é realmente uma lista. Nunca use eval() em entradas que você não controla. O passo a passo completo está em Converter uma string em lista em Python.

Como verifico se uma string contém uma substring ou uma palavra?

Para um teste simples de substring, use o operador in: "word" in text devolve um booleano e diferencia maiúsculas de minúsculas. Quando você também precisa da posição, find() devolve o primeiro índice ou -1, enquanto index() levanta ValueError em vez disso. Observe que in também corresponde dentro de palavras maiores — "is" in "This" é verdadeiro — então, para uma palavra inteira, tokenize ou use uma expressão regular com limites \b, como mostrado em Verifique se uma string contém palavra em Python.

Como removo a pontuação ou os caracteres especiais de uma string?

Defina primeiro o que deve sair: apenas a pontuação, ou tudo o que não for letra nem dígito. Para a pontuação, filtre contra string.punctuation, substitua com a expressão regular [^\w\s], ou apague um conjunto inteiro de uma só vez com uma tabela de str.translate() criada por maketrans() — a opção mais rápida. Para uma limpeza mais ampla, um filtro isalnum() preserva as letras e os dígitos Unicode. Como tirar a pontuação a partir de uma string em Python percorre cada variante.

Por que o Python diz «not all arguments converted during string formatting»?

Este TypeError vem da formatação com %: o modelo contém menos marcadores do que a tupla de valores que você passou, então o Python chega ao fim do modelo com argumentos sobrando — por exemplo, "Value: " % (1, 2). Dê a cada valor exatamente um marcador, embrulhe um único valor em uma tupla de um item e escape um sinal de porcentagem literal como %%`. Um guia dedicado a esse erro o disseca caso a caso.

Existe um toString() em Python?

Não. O Python não tem um método toString(); procurá-lo é um hábito trazido do Java. O equivalente é o integrado str(value), que devolve uma string legível para números, coleções e a maioria dos objetos. Use join() para combinar muitas strings, f-strings para construir mensagens, e defina __str__() em suas próprias classes para controlar como elas são impressas. Observe que str() produz texto de exibição, não JSON nem CSV. Veja Equivalente a tostring() em Python.

Como substituo um caractere em um índice específico?

Você não pode atribuir dentro de uma string — text[2] = "m" levanta TypeError, porque as strings são imutáveis. Construa a substituição em vez disso: fatie em torno da posição, text[:2] + "m" + text[3:], ou converta para lista, atribua no índice e reúna com "".join(...). Ambos devolvem uma nova string e deixam a original intacta; valide o índice contra len(text) quando ele vier da entrada do usuário. Substitua o caractere na string no índice em Python mostra os dois.

Todos os guias de strings do Python

Noções básicas

Converter

Limpar e excluir

Localizar, verificar e contar

Maiúsculas e minúsculas, comparação e preenchimento

Formatar e substituir

Mais artigos sobre strings