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áveisComo 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: hTambé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: hFatiamento 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ívelupper(): 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 PythonDividindo 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-é-divertidosplit(): 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.10Alé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.10Formatando 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 é 82. 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.14Isso 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 reBuscando 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-5678Explicaçã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-XXXXVerificando 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! 🚀






