Strings
Uma string (str) é um tipo de dado utilizado para representar uma sequência de caracteres em Python.
Uma string pode conter letras, números, espaços, símbolos e outros caracteres.
Por exemplo:
nome = "Python"
mensagem = "Olá, mundo!"
codigo = "12345"Mesmo que uma string contenha apenas números, ela continua sendo uma string:
codigo = "12345"
print(type(codigo))Resultado:
<class 'str'>Criação de strings
Strings podem ser criadas utilizando aspas simples:
nome = 'Python'Ou aspas duplas:
nome = "Python"Também podemos utilizar aspas triplas para strings que ocupam várias linhas:
texto = """Primeira linha
Segunda linha
Terceira linha"""É possível utilizar aspas simples dentro de uma string delimitada por aspas duplas:
mensagem = "Ele disse 'Olá!'"E também o contrário:
mensagem = 'Ele disse "Olá!"'Strings são sequências
Uma string é uma sequência de caracteres.
Por exemplo:
palavra = "Python"Podemos visualizar seus caracteres da seguinte forma:
Índice: 0 1 2 3 4 5
┌────┬────┬────┬────┬────┬────┐
String: │ P │ y │ t │ h │ o │ n │
└────┴────┴────┴────┴────┴────┘Assim como acontece com listas, os índices começam em 0.
print(palavra[0]) # P
print(palavra[1]) # y
print(palavra[5]) # nTambém podemos utilizar índices negativos:
print(palavra[-1]) # n
print(palavra[-2]) # oTamanho da string
A função len() retorna a quantidade de caracteres:
texto = "Python"
print(len(texto))Resultado:
6Os espaços também são considerados caracteres:
texto = "Olá mundo"
print(len(texto))Resultado:
9Acesso aos caracteres
Podemos acessar qualquer caractere utilizando seu índice:
nome = "Maria"
print(nome[0])
print(nome[2])
print(nome[4])Resultado:
M
r
aTentar acessar um índice que não existe gera uma exceção IndexError:
print(nome[10])Slicing
Assim como listas, strings permitem utilizar slicing para obter partes da sequência.
A sintaxe básica é:
string[inicio:fim]Por exemplo:
texto = "Python"
print(texto[0:3])Resultado:
PytO índice inicial é incluído e o índice final não é incluído.
Também podemos utilizar:
print(texto[:3]) # Pyt
print(texto[2:]) # thon
print(texto[:]) # PythonÉ possível utilizar um passo:
print(texto[::2])Resultado:
PtoTambém podemos inverter uma string:
print(texto[::-1])Resultado:
nohtyPStrings são imutáveis
Strings em Python são imutáveis.
Isso significa que não podemos alterar diretamente um caractere de uma string.
O código abaixo gera um erro:
nome = "Maria"
nome[0] = "X"Para modificar uma string, precisamos criar uma nova string:
nome = "Maria"
nome = "X" + nome[1:]
print(nome)Resultado:
XariaOs métodos de string também não modificam a string original. Eles normalmente retornam uma nova string.
Converter para maiúsculas
O método upper() retorna uma nova string com os caracteres em maiúsculas:
texto = "Python"
print(texto.upper())Resultado:
PYTHONA string original permanece inalterada:
texto = "Python"
texto.upper()
print(texto)Resultado:
PythonPara armazenar o resultado:
texto = texto.upper()Converter para minúsculas
O método lower() retorna uma string com os caracteres em minúsculas:
texto = "PYTHON"
print(texto.lower())Resultado:
pythonCapitalização
O método capitalize() coloca o primeiro caractere em maiúsculo e os demais em minúsculo:
texto = "python É UMA LINGUAGEM"
print(texto.capitalize())Resultado:
Python é uma linguagemO método title() coloca a primeira letra de cada palavra em maiúscula:
texto = "linguagem de programação"
print(texto.title())Resultado:
Linguagem De ProgramaçãoRemover espaços
O método strip() remove espaços no início e no final da string:
texto = " Python "
print(texto.strip())Resultado:
PythonTambém existem:
texto.lstrip() # remove espaços do início
texto.rstrip() # remove espaços do finalstrip() é muito utilizado para tratar dados recebidos pelo usuário:
nome = input("Digite seu nome: ")
nome = nome.strip()Substituir partes da string
O método replace() substitui uma parte da string por outra:
texto = "Eu gosto de Java"
texto = texto.replace("Java", "Python")
print(texto)Resultado:
Eu gosto de PythonTambém podemos limitar a quantidade de substituições:
texto = "banana banana banana"
print(texto.replace("banana", "maçã", 1))Resultado:
maçã banana bananaVerificar se uma string contém outra
O operador in verifica se uma sequência de caracteres está presente em outra:
texto = "Python é uma linguagem de programação"
print("Python" in texto)Resultado:
TrueTambém podemos utilizar not in:
print("Java" not in texto)Resultado:
TrueEncontrar uma substring
O método find() retorna o índice da primeira ocorrência de uma substring:
texto = "Python é uma linguagem"
print(texto.find("linguagem"))Resultado:
14Se a substring não for encontrada, find() retorna -1:
print(texto.find("Java"))Resultado:
-1O método index() possui comportamento semelhante, mas gera uma exceção ValueError quando a substring não é encontrada:
print(texto.index("linguagem"))Contar ocorrências
O método count() informa quantas vezes uma sequência aparece:
texto = "banana"
print(texto.count("a"))Resultado:
3Também podemos contar palavras:
texto = "Python é simples. Python é poderoso."
print(texto.count("Python"))Resultado:
2Verificar o início e o final
O método startswith() verifica se uma string começa com determinado texto:
arquivo = "relatorio.pdf"
print(arquivo.startswith("relatorio"))Resultado:
TrueO método endswith() verifica se uma string termina com determinado texto:
print(arquivo.endswith(".pdf"))Resultado:
TrueEsses métodos são úteis para verificar extensões de arquivos, prefixos e outros padrões simples.
Dividir uma string
O método split() divide uma string e retorna uma lista.
Por padrão, a divisão é feita pelos espaços:
texto = "Python é muito interessante"
palavras = texto.split()
print(palavras)Resultado:
['Python', 'é', 'muito', 'interessante']Também podemos informar um separador:
data = "27/08/2026"
partes = data.split("/")
print(partes)Resultado:
['27', '08', '2026']Juntar strings
O método join() realiza a operação inversa do split().
Ele utiliza uma string como separador para juntar os elementos de uma sequência:
palavras = ["Python", "é", "legal"]
texto = " ".join(palavras)
print(texto)Resultado:
Python é legalPodemos escolher outro separador:
nomes = ["Ana", "Bruno", "Carlos"]
resultado = ", ".join(nomes)
print(resultado)Resultado:
Ana, Bruno, CarlosVerificar o tipo de caracteres
Python possui métodos que permitem verificar o conteúdo de uma string.
isdigit()
Verifica se todos os caracteres são dígitos:
texto = "12345"
print(texto.isdigit())Resultado:
Trueisalpha()
Verifica se todos os caracteres são letras:
texto = "Python"
print(texto.isalpha())Resultado:
Trueisalnum()
Verifica se todos os caracteres são letras ou números:
texto = "Python123"
print(texto.isalnum())Resultado:
Trueisspace()
Verifica se todos os caracteres são espaços em branco:
texto = " "
print(texto.isspace())Resultado:
TrueEsses métodos retornam True ou False e são especialmente úteis para validação de dados.
Formatação de strings
Uma forma bastante utilizada para inserir valores dentro de strings é utilizar f-strings.
nome = "Maria"
idade = 25
mensagem = f"Meu nome é {nome} e tenho {idade} anos."
print(mensagem)Resultado:
Meu nome é Maria e tenho 25 anos.Expressões também podem ser utilizadas:
a = 10
b = 20
print(f"A soma é {a + b}")Resultado:
A soma é 30As f-strings são uma forma simples e legível de construir textos utilizando valores de variáveis.
Percorrer uma string
Como uma string é uma sequência, podemos percorrer seus caracteres utilizando for:
palavra = "Python"
for caractere in palavra:
print(caractere)Resultado:
P
y
t
h
o
nTambém podemos utilizar os índices:
for i in range(len(palavra)):
print(palavra[i])Quando o índice não é necessário, percorrer diretamente os caracteres costuma deixar o código mais simples.
Comparação de strings
Strings podem ser comparadas utilizando operadores de comparação:
nome1 = "Ana"
nome2 = "Ana"
print(nome1 == nome2)Resultado:
TrueTambém podemos verificar se são diferentes:
print(nome1 != nome2)A comparação diferencia letras maiúsculas e minúsculas:
print("Python" == "python")Resultado:
FalseQuando queremos comparar textos sem considerar a diferença entre maiúsculas e minúsculas, podemos utilizar lower():
nome1 = "PYTHON"
nome2 = "python"
print(nome1.lower() == nome2.lower())Resultado:
TruePrincipais métodos
Alguns dos métodos mais utilizados em strings são:
| Método | Função |
|---|---|
upper() | Converte para maiúsculas |
lower() | Converte para minúsculas |
capitalize() | Capitaliza a string |
title() | Capitaliza cada palavra |
strip() | Remove espaços no início e no final |
replace() | Substitui partes da string |
find() | Localiza uma substring |
count() | Conta ocorrências |
startswith() | Verifica o início da string |
endswith() | Verifica o final da string |
split() | Divide a string em uma lista |
join() | Junta elementos de uma sequência |
isdigit() | Verifica se contém apenas dígitos |
isalpha() | Verifica se contém apenas letras |
isalnum() | Verifica se contém letras ou números |
isspace() | Verifica se contém apenas espaços |
Exemplo completo
O exemplo abaixo demonstra algumas das principais operações realizadas com strings:
texto = " Python é uma linguagem de programação "
texto = texto.strip()
print("Texto:", texto)
print("Tamanho:", len(texto))
print("Maiúsculo:", texto.upper())
print("Minúsculo:", texto.lower())
print("Contém Python:", "Python" in texto)
print("Quantidade de 'a':", texto.count("a"))
print("Posição de 'linguagem':", texto.find("linguagem"))
palavras = texto.split()
print("Palavras:", palavras)
print("Texto novamente:", " ".join(palavras))Conclusão
A str é o tipo utilizado para representar sequências de caracteres em Python.
Suas principais características são:
- Strings representam sequências de caracteres.
- Os índices começam em
0. - É possível acessar caracteres individualmente.
- É possível utilizar slicing.
- Strings são imutáveis.
- Python fornece diversos métodos para manipulação e validação de textos.
- Métodos como
split()ejoin()permitem trabalhar com strings e listas. - O operador
inpermite verificar se determinado texto está presente. - F-strings facilitam a criação de textos utilizando valores de variáveis.
Compreender strings é fundamental para trabalhar com textos, entrada de dados, arquivos, validação e processamento de informações em Python.