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:
# 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:
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.
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.
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.
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 é:
string[início:fim:passo]
Exemplos:
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:
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:
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:
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:
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()
:
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:
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 +
:
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:
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 {}
:
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:
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()
:
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:
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:
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 %
:
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:
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
:
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.
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()
:
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()
:
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()
:
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:
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! 🚀