Fundamentos

Strings em Python: métodos split, replace, strip, join, fatias e f-strings

Atualizado: · Skillaria.Top

String em Python (tipo str) é uma sequência imutável de caracteres Unicode. O método split() divide a string em uma lista, join() junta a lista de volta, replace() troca um trecho e strip() remove espaços das bordas; cada método devolve uma nova string. Para inserir valores, o mais cômodo é a f-string: f"{name}: {price:.2f}".

Strings aparecem em qualquer programa em Python: entrada do usuário, nomes de arquivos, linhas de CSV, respostas de APIs. O tipo str guarda texto em Unicode, então acentos e emojis funcionam sem configuração. Os métodos mais usados são split, replace, strip e join, e para exibir valores o mais prático é a f-string. Vamos ver tudo isso com exemplos.

Como uma string funciona em Python

A string é escrita entre aspas simples ou duplas — não há diferença: 'café' e "café" são idênticas. Aspas triplas criam uma string de várias linhas, em que as quebras são preservadas como estão.

name = "Café"
note = """Primeira linha
Segunda linha"""
print(len(name))  # 4 — tamanho da string em caracteres

A principal propriedade das strings é a imutabilidade. O método não altera a string, ele devolve uma nova. Por isso, s.replace("a", "b") sem atribuição não produz efeito — é preciso escrever s = s.replace("a", "b"). Este é o erro mais comum de quem está começando.

Caracteres especiais, quebra de linha e strings raw

A quebra de linha é representada por \n, a tabulação — por \t, a barra invertida — por \\. O prefixo r torna a string «crua» (raw): as barras invertidas dentro dela não são interpretadas. Isso é cômodo para caminhos do Windows e expressões regulares.

print("Total:\n350 R$")
path = r"C:\new\table.csv"   # \n e \t não viram caracteres especiais

Uma expressão longa pode ser quebrada em várias linhas de código ao ser colocada entre parênteses: strings literais vizinhas dentro dos parênteses o Python une sozinho.

split: dividir a string em uma lista

O método split() divide a string pelo separador e devolve uma lista. Sem argumento, ele corta em qualquer espaço em branco e ignora espaços repetidos — isso é cômodo para analisar comandos.

"add  Café 250".split()        # ['add', 'Café', '250']
"2026-10-16".split("-")        # ['2026', '10', '16']
"a,b,,c".split(",")            # ['a', 'b', '', 'c']
"key=value=x".split("=", 1)    # ['key', 'value=x']

Atenção à diferença: com um separador explícito, os fragmentos vazios são preservados. O segundo argumento maxsplit limita o número de cortes, e rsplit() corta pela direita. Para dividir um texto em linhas, use splitlines(): ele reconhece tanto \n quanto \r\n e não deixa um elemento vazio no fim.

text = "café\ntáxi\n"
text.split("\n")     # ['café', 'táxi', '']
text.splitlines()    # ['café', 'táxi']

join: juntar uma lista em uma string

join() é a operação inversa. Ele é chamado a partir da string separadora e recebe como argumento uma lista de strings:

items = ["café", "táxi", "almoço"]
print(", ".join(items))   # café, táxi, almoço
print("\n".join(items))   # cada item em uma nova linha

Todos os elementos precisam ser strings, senão você receberá TypeError: sequence item 0: expected str instance, int found. Números devem ser convertidos antes: ", ".join(str(x) for x in amounts).

Concatenação e união de strings

Duas strings podem ser somadas com + e repetidas com *: "-" * 20. Porém, juntar centenas de pedaços num laço com += é lento, porque a cada vez é criada uma nova string. Reúna as partes em uma lista e una tudo com um único join(). Não dá para somar diretamente uma string com um número: "Total: " + 5 gera TypeError; é preciso usar a função str() ou uma f-string.

replace: substituição de um trecho

replace(old, new) troca todas as ocorrências de um trecho. O terceiro argumento limita a quantidade de substituições.

price = "1 250,50"
price = price.replace(" ", "").replace(",", ".")
print(float(price))                  # 1250.5

"a-b-c".replace("-", "+", 1)         # 'a+b-c'

O método diferencia maiúsculas de minúsculas e procura correspondência exata. Para substituições por padrão (por exemplo, «todos os dígitos») é preciso o módulo re e a função re.sub().

strip, lstrip, rstrip: aparar a string

strip() remove espaços, tabulações e quebras de linha das duas bordas. lstrip() limpa apenas a esquerda, e rstrip() — apenas a direita. É a primeira coisa a fazer com a entrada do usuário e com as linhas de um arquivo.

raw = "  Café \n"
raw.strip()       # 'Café'
raw.rstrip()      # '  Café'
"xxCafexx".strip("x")   # 'Cafe'

O argumento define um conjunto de caracteres, e não uma substring: "abcTextocba".strip("abc") remove das bordas todos os a, b e c, em qualquer ordem. Para cortar exatamente um prefixo ou sufixo, use removeprefix() e removesuffix() (a partir do Python 3.9).

Outros métodos úteis para strings

MétodoO que fazExemplo → resultado
lower(), upper()caixa das letras"Café".lower() → 'café'
startswith(), endswith()verifica início e fim"a.csv".endswith(".csv") → True
find()posição do trecho ou -1"café".find("f") → 2
count()número de ocorrências"banana".count("a") → 3
isdigit()

Perguntas frequentes

Como saber o tamanho de uma string em Python?

A função len(s) devolve o número de caracteres. Em português com acentos e em emojis contam os caracteres Unicode, e não os bytes; o tamanho em bytes é dado por len(s.encode("utf-8")).

Como transformar um número em string e vice-versa?

str(250) dá '250', e int("250") e float("2.5") fazem a conversão inversa. Se a string não parecer um número, int() gera ValueError, por isso a entrada deve ser verificada.

Por que o replace não altera minha string?

As strings são imutáveis, e o replace devolve uma nova. Atribua o resultado: s = s.replace("a", "b").

Como verificar se a string está vazia?

A string vazia é falsa, então basta if not s:. Se a string pode conter apenas espaços, verifique com if not s.strip():.

Qual a diferença entre uma t-string e uma f-string?

A f-string devolve imediatamente uma str pronta, enquanto a t-string (Python 3.14+) é um objeto Template com os trechos de texto e os valores separados. Isso permite escapar dados com segurança para HTML e SQL.

Aprenda este tema em vídeo

Este tema é abordado em profundidade, com prática, no curso “Python 3.15: от новичка до профи”.

Ir para o curso