Strings em Python: métodos split, replace, strip, join, fatias e f-strings
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étodo | O que faz | Exemplo → 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.
Este tema é abordado em profundidade, com prática, no curso “Python 3.15: от новичка до профи”.
Ir para o curso