Home > Blog > Python
Python
Programação

Strings em Python: Guia Completo para Manipulação de Textos

Atualizado em: 17 de março de 2025 | por Leandro Hirt

cobra python em um fundo verde desfocado

O que são strings em Python?

As strings em Python são sequências de caracteres usadas para representar textos. Elas são um dos tipos de dados mais fundamentais da linguagem e são amplamente utilizadas em manipulação de textos, entrada e saída de dados, e comunicação com APIs.

Em Python, uma string pode ser definida utilizando aspas simples ('texto'), aspas duplas ("texto") ou até mesmo aspas triplas ('''texto''' ou """texto"""). Cada uma dessas formas tem seu propósito:

Python
# Diferentes formas de definir strings
string1 = 'Olá, mundo!'    # Aspas simples
string2 = "Olá, mundo!"    # Aspas duplas
string3 = '''Olá, mundo!'''  # Aspas triplas
string4 = """Olá, mundo!"""  # Aspas triplas

print(string1)
print(string2)
print(string3)
print(string4)

As aspas triplas são especialmente úteis para definir strings de múltiplas linhas:

Python
texto_multilinhas = """Isso é um exemplo de
uma string que ocupa
múltiplas linhas."""
print(texto_multilinhas)

Strings em Python são imutáveis, ou seja, uma vez criadas, não podem ser modificadas diretamente. Se precisar alterar uma string, é necessário criar uma nova variável.

Python
texto = "Python"
texto[0] = "J"  # Isso causará um erro, pois strings são imutáveis

Como criar e manipular strings em Python

Python oferece diversas maneiras de manipular strings, incluindo operações básicas como acesso a caracteres, fatiamento e repetição.

Acessando caracteres em uma string

Cada caractere dentro de uma string pode ser acessado utilizando indexação. Em Python, os índices começam em 0.

Python
texto = "Python"
print(texto[0])  # Saída: P
print(texto[3])  # Saída: h

Também é possível utilizar índices negativos para acessar os caracteres do final para o início.

Python
print(texto[-1])  # Saída: n (último caractere)
print(texto[-3])  # Saída: h

Fatiamento de strings

O fatiamento (slicing) permite extrair partes específicas de uma string. A sintaxe é:

Python
string[início:fim:passo]

Exemplos:

Python
texto = "Python"

print(texto[0:4])   # Saída: Pyth
print(texto[:4])    # Saída: Pyth (início implícito)
print(texto[2:])    # Saída: thon (fim implícito)
print(texto[::2])   # Saída: Pto (passo de 2 em 2)
print(texto[::-1])  # Saída: nohtyP (string invertida)

Repetição e concatenação

Strings podem ser repetidas e concatenadas facilmente:

Python
print("Py" + "thon")   # Saída: Python (concatenação)<br>print("A" * 5)        # Saída: AAAAA (repetição)<br>

Principais métodos para trabalhar com strings

Python oferece diversos métodos embutidos para manipulação de strings. Esses métodos facilitam tarefas como alteração de caixa, substituição de caracteres, remoção de espaços, e muito mais.

Convertendo caixa de texto

Python permite converter todas as letras de uma string para maiúsculas, minúsculas ou capitalizar a primeira letra:

Python
texto = "python é incrível"

print(texto.upper())      # PYTHON É INCRÍVEL
print(texto.lower())      # python é incrível
print(texto.title())      # Python É Incrível
print(texto.capitalize()) # Python é incrível
  • upper(): Converte toda a string para maiúsculas.
  • lower(): Converte toda a string para minúsculas.
  • title(): Converte a primeira letra de cada palavra para maiúscula.
  • capitalize(): Apenas a primeira letra da string fica maiúscula.

Removendo espaços em branco

Às vezes, strings contêm espaços extras no início ou no final. Para remover esses espaços, usamos:

Python
texto = "   Python   "

print(texto.strip())  # "Python" (remove espaços nas extremidades)
print(texto.lstrip()) # "Python   " (remove espaços à esquerda)
print(texto.rstrip()) # "   Python" (remove espaços à direita)
  • strip(): Remove espaços em branco no início e no fim.
  • lstrip(): Remove apenas os espaços da esquerda.
  • rstrip(): Remove apenas os espaços da direita.

Substituição de caracteres

O método replace() permite substituir partes de uma string:

Python
frase = "Eu gosto de Java"
nova_frase = frase.replace("Java", "Python")

print(nova_frase)  # Saída: Eu gosto de Python

Dividindo e unindo strings

Podemos dividir uma string em partes usando split() e juntar uma lista de strings com join():

Python
frase = "Aprender Python é divertido"
palavras = frase.split()  # Divide a string em uma lista de palavras

print(palavras)  # ['Aprender', 'Python', 'é', 'divertido']

# Agora unimos as palavras novamente com um hífen
nova_frase = "-".join(palavras)
print(nova_frase)  # Aprender-Python-é-divertido
  • split(): Divide a string em uma lista, separando pelos espaços (ou outro delimitador definido).
  • join(): Junta elementos de uma lista em uma única string, com um delimitador.

Verificando o conteúdo de uma string

Podemos checar se uma string começa, termina ou contém determinados caracteres:

Python
texto = "Python é incrível"

print(texto.startswith("Python"))  # True
print(texto.endswith("incrível"))  # True
print("Python" in texto)           # True (verifica se a palavra está presente)
print("Java" not in texto)         # True (verifica se a palavra não está presente)

Esses métodos são úteis para validação de entradas e buscas dentro de strings.

Concatenação e formatação de strings

Manipular strings em Python frequentemente envolve combinar diferentes partes de texto. A concatenação e formatação de strings são técnicas essenciais para tornar essa tarefa mais eficiente.

Concatenação de strings

A concatenação é simplesmente a junção de duas ou mais strings usando o operador +:

Python
nome = "Python"
versao = "3.10"

frase = nome + " versão " + versao
print(frase)  # Saída: Python versão 3.10

Além disso, podemos utilizar f-strings para tornar o código mais legível:

Python
frase = f"{nome} versão {versao}"
print(frase)  # Saída: Python versão 3.10

Formatando strings

Python oferece diferentes formas de formatar strings, sendo as mais comuns:

1. f-strings (Python 3.6+)

As f-strings permitem inserir variáveis diretamente dentro da string com {}:

Python
nome = "Alice"
idade = 25

mensagem = f"Meu nome é {nome} e tenho {idade} anos."
print(mensagem)  # Saída: Meu nome é Alice e tenho 25 anos.

Também é possível realizar operações dentro das f-strings:

Python
a = 5
b = 3
print(f"A soma de {a} + {b} é {a + b}")  # Saída: A soma de 5 + 3 é 8

2. Método .format()

Outra maneira de formatar strings é utilizando o método .format():

Python
mensagem = "Meu nome é {} e tenho {} anos.".format("Alice", 25)
print(mensagem)  # Saída: Meu nome é Alice e tenho 25 anos.

Podemos usar índices para definir a posição dos valores:

Python
mensagem = "Meu nome é {0} e tenho {1} anos.".format("Alice", 25)
print(mensagem)  # Saída: Meu nome é Alice e tenho 25 anos.

Ou utilizar nomes de variáveis dentro da string:

Python
mensagem = "Meu nome é {nome} e tenho {idade} anos.".format(nome="Alice", idade=25)
print(mensagem)  # Saída: Meu nome é Alice e tenho 25 anos.

3. Formatação com % (método antigo)

Antes das f-strings, a formatação era feita usando %:

Python
nome = "Alice"
idade = 25
mensagem = "Meu nome é %s e tenho %d anos." % (nome, idade)
print(mensagem)  # Saída: Meu nome é Alice e tenho 25 anos.

Esse método ainda funciona, mas é menos recomendado do que f-strings.

Formatando números em strings

Podemos controlar a formatação de números dentro de strings:

Python
pi = 3.14159
print(f"Valor de pi: {pi:.2f}")  # Saída: Valor de pi: 3.14

Isso define que o número será exibido com apenas duas casas decimais.

Strings em Python e expressões regulares

Expressões regulares (regex) são uma ferramenta poderosa para buscar, substituir e validar padrões em strings. Em Python, o módulo re fornece diversas funções para lidar com expressões regulares de maneira eficiente.

Introdução às expressões regulares

Uma expressão regular é um padrão que pode ser usado para encontrar combinações específicas de caracteres dentro de um texto. Por exemplo, podemos verificar se um email é válido, extrair números de um texto ou substituir trechos de uma string.

Para utilizar expressões regulares, primeiro importamos o módulo re:

Python
import re

Buscando padrões em strings

A função re.search() verifica se um padrão aparece dentro de uma string e retorna o primeiro resultado encontrado.

Python
import re

texto = "Meu número de telefone é 1234-5678"
padrao = r"\d{4}-\d{4}"  # Expressão para encontrar números no formato XXXX-XXXX

resultado = re.search(padrao, texto)

if resultado:
    print(f"Encontrado: {resultado.group()}")  # Saída: Encontrado: 1234-5678

Explicação da regex:

  • \d{4} → Encontra quatro dígitos numéricos.
  • - → Procura pelo hífen.
  • \d{4} → Mais quatro dígitos após o hífen.

Encontrando múltiplos padrões

Se quisermos encontrar todas as ocorrências de um padrão, usamos re.findall():

Python
texto = "Contate-me nos telefones 1234-5678 ou 9876-5432"
padrao = r"\d{4}-\d{4}"

resultados = re.findall(padrao, texto)
print(resultados)  # Saída: ['1234-5678', '9876-5432']

Substituindo padrões em strings

Podemos substituir partes do texto usando re.sub():

Python
texto = "Meu número é 1234-5678"
novo_texto = re.sub(r"\d{4}-\d{4}", "XXXX-XXXX", texto)

print(novo_texto)  # Saída: Meu número é XXXX-XXXX

Verificando se uma string segue um padrão

Se quisermos verificar se um texto corresponde exatamente a um padrão, usamos re.fullmatch():

Python
email = "usuario@email.com"
padrao = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"

if re.fullmatch(padrao, email):
    print("Email válido!")
else:
    print("Email inválido!")

Explicação da regex para emails:

  • ^ → Começa a correspondência.
  • [a-zA-Z0-9_.+-]+ → Nome de usuário (letras, números e caracteres especiais permitidos).
  • @ → Deve conter o símbolo @.
  • [a-zA-Z0-9-]+ → Domínio (ex: gmail, yahoo, etc.).
  • \. → Deve conter um ponto (.).
  • [a-zA-Z0-9-.]+$ → Extensão do domínio (ex: .com, .org).

Exemplo prático: extração de URLs

Podemos extrair URLs de um texto usando expressões regulares:

Python
texto = "Visite nosso site em https://www.exemplo.com e https://outrosite.com"
padrao = r"https?://[a-zA-Z0-9./-]+"

urls = re.findall(padrao, texto)
print(urls)  # Saída: ['https://www.exemplo.com', 'https://outrosite.com']

Aqui usamos https?:// para permitir http ou https.

Conclusão: Strings em Python

As strings em Python são uma parte essencial da linguagem, permitindo manipulação de textos de maneira simples e eficiente. Neste guia, exploramos desde conceitos básicos, como criação e concatenação, até técnicas avançadas, como expressões regulares para busca e substituição de padrões.

Com a grande variedade de métodos embutidos, Python facilita tarefas como formatação, divisão e remoção de espaços em strings, além de oferecer f-strings para tornar o código mais legível e eficiente.

Seja para análise de textos, processamento de dados ou validação de informações, dominar a manipulação de strings tornará seu código mais flexível e poderoso. Agora que você conhece essas técnicas, experimente aplicá-las em seus projetos para tornar suas aplicações ainda mais dinâmicas! 🚀

Curso de Python do Básico ao Avançado

Domine Python de forma prática e objetiva! Comece do zero e avance até tópicos avançados

Os comentários estão desativados.

POSTS RELACIONADOS

Ver todos

Seta para a direita