Menu

Strings em Python: f-strings, fatiamento e todo método de string que você vai usar

Trabalhando com texto em Python — criando strings, usando f-strings, fatiando e os métodos do dia a dia como split, join, replace e strip.

Texto, só que com métodos

Uma string em Python é uma sequência de caracteres, e você vai usar strings mais do que qualquer outro tipo. Todo nome, rótulo, mensagem, URL, caminho de arquivo e resposta de API vive numa string em algum momento.

Crie uma com aspas — simples, duplas ou triplas:

main.py
Output
Click Run to see the output here.

Aspas simples e duplas são intercambiáveis. Use a que te poupa de escapar um caractere. "don't" é limpo; 'don\'t' precisa de barra invertida.

Strings são imutáveis. Uma vez que uma string existe, você não pode mudar um caractere dela no lugar. Toda operação que parece mudar uma string na verdade retorna uma nova. É por isso que você vai escrever text = text.upper() em vez de só text.upper() — sem a reatribuição, a string nova em maiúsculas seria jogada fora.

Juntando e repetindo

Dois operadores fazem a maior parte da combinação de strings que você vai precisar:

main.py
Output
Click Run to see the output here.

+ concatena strings. * repete uma string. Os dois retornam uma string nova.

Concatenar muitas partes com + fica feio rápido. Quando você está misturando valores de tipos diferentes numa mensagem, recorra a f-strings — veja a próxima seção.

f-strings: o jeito que você geralmente vai formatar

Coloque um f na frente da aspa de abertura e a string vira um template. Qualquer coisa em {...} é substituída pelo valor daquela expressão:

main.py
Output
Click Run to see the output here.

Você pode colocar qualquer expressão dentro das chaves — variáveis, aritmética, chamadas de método, chamadas de função. Mantenha simples, porém; se você está tentado a enfiar um cálculo de três linhas em {...}, calcule numa variável nomeada primeiro.

f-strings também aceitam especificadores de formato depois de dois pontos, para controlar formatação numérica, preenchimento e alinhamento:

main.py
Output
Click Run to see the output here.

Essas especificações de formato são as mesmas que str.format() usa e valem uma olhada rápida quando você estiver à vontade com o básico. Você não precisa delas para código de primeiro dia.

Fatiamento: pegue um pedaço

Strings são indexáveis como sequências. Cada caractere tem uma posição começando em zero, e você pode pegar um caractere ou um intervalo:

main.py
Output
Click Run to see the output here.

O padrão [start:stop:step] aparece em listas e outras sequências também, então investir alguns minutos para internalizar compensa em todo lugar.

Duas coisas para destacar:

  • O índice stop é exclusivo: word[0:2] inclui os índices 0 e 1, não 2.
  • Índices negativos contam do fim: -1 é o último caractere, -2 o antes, e assim por diante.

Como inverter uma string

Strings não têm método .reverse() — são imutáveis — mas fatiamento com passo -1 resolve em uma linha:

main.py
Output
Click Run to see the output here.

word[::-1] se lê como "do começo ao fim, passo de -1". O resultado é uma string nova; a original fica intocada. Se você precisa iterar os caracteres em ordem inversa sem materializar uma string nova, reversed(word) retorna um iterador preguiçoso.

Como checar o tamanho de uma string

len(texto) retorna o número de caracteres:

main.py
Output
Click Run to see the output here.

Note que len conta code points Unicode, não bytes. len("café") é 4, não 5, mesmo que a codificação UTF-8 ocupe mais bytes — o que geralmente é o que você quer.

Como checar se uma string contém uma substring

O operador in é a checagem idiomática, e se lê como inglês:

main.py
Output
Click Run to see the output here.

Para checagens sem diferenciar maiúsculas, normalize os dois lados antes:

main.py
Output
Click Run to see the output here.

Se você precisa da posição, não só sim/não, use .find() — retorna o índice ou -1 quando a substring não está lá.

Métodos de string comuns

Strings têm dezenas de métodos. Você vai recorrer constantemente a este punhado:

main.py
Output
Click Run to see the output here.

Dividindo e juntando:

main.py
Output
Click Run to see the output here.

.split(separador) transforma uma string em lista. separador.join(lista_de_strings) cola de volta. Esses dois métodos carregam uma fatia desproporcional do trabalho com strings no mundo real.

Mais uma dupla útil:

main.py
Output
Click Run to see the output here.

Isso é um parser para uma entrada de config de uma linha, escrito em três linhas. Strings pequenas, grande alavancagem.

Checando o que tem dentro

Vários métodos retornam booleanos, úteis em condições if:

main.py
Output
Click Run to see the output here.

Use com moderação — eles não lidam com todos os detalhes de Unicode do jeito que você pode esperar. Para qualquer coisa além de ASCII, apoie-se no módulo regex ou no módulo unicodedata.

Escapando caracteres especiais

Alguns caracteres precisam de barra invertida para aparecer dentro de uma string:

main.py
Output
Click Run to see the output here.

Se você está escrevendo caminhos do Windows ou regex, strings raw facilitam a vida. Coloque um r na frente da aspa e barras invertidas deixam de ser caracteres de escape:

main.py
Output
Click Run to see the output here.

Strings estão em todo lugar, então mantenha legível

Três hábitos que evitam que código pesado em strings vire sopa:

  1. Use f-strings para interpolação. Não encadeie + entre tipos diferentes.
  2. Reatribua ao "modificar". text = text.strip(), não text.strip() sozinho.
  3. Recorra a .split() e .join() antes de escrever laços manuais para analisar ou montar texto. São mais rápidos, mais claros e mais difíceis de errar.

Na sequência: f-strings em profundidade — a ferramenta de formatação que você já viu algumas vezes, mais as specs de formatação de números e datas que fazem valer a pena dominar.

Perguntas frequentes

O que é uma f-string em Python?

Uma f-string é um literal de string com prefixo f, onde qualquer coisa dentro de {...} é substituída pelo valor daquela expressão. Exemplo: f"Hello, {name}!" encaixa o valor atual de name na string em tempo de execução.

Como inverto uma string em Python?

Use fatiamento com passo -1: invertida = original[::-1]. Isso retorna uma nova string feita dos mesmos caracteres em ordem inversa. A original não é mexida porque strings em Python são imutáveis.

Como divido uma string em Python?

Chame .split() na string. Sem argumento, divide em qualquer espaço em branco: "a b c".split() retorna ['a', 'b', 'c']. Você pode passar um separador específico: "a,b,c".split(",") retorna ['a', 'b', 'c'].

Strings em Python são mutáveis?

Não. Strings são imutáveis — uma vez que uma string existe, você não pode mudar nenhum caractere no lugar. Todo método que "muda" uma string na verdade retorna uma nova. É por isso que você vê padrões como text = text.strip() — você reatribui a variável à string nova.

Como concateno strings em Python?

Use + para juntar duas strings: "hello" + " " + "world". Para combinar um valor numa frase, prefira uma f-string: f"Hello, {name}". Para juntar muitas partes de uma lista, use separador.join(partes) — é mais rápido e mais legível do que + encadeado.

Como checo o tamanho de uma string em Python?

Chame a função embutida len(texto). Ela retorna o número de caracteres (code points Unicode), então len("café") é 4. Para tamanho em bytes, codifique primeiro: len(texto.encode("utf-8")).

Aprenda a programar com o Coddy

COMEÇAR