Manipulação de Strings#
As strings são um dos tipos de dados fundamentais em Python e representam sequências de caracteres. Elas são amplamente utilizadas na programação para armazenar, processar e formatar textos, sendo essenciais para tarefas como entrada de dados, exibição de informações e manipulação textual em arquivos, bancos de dados e aplicações web.
Em Python, uma string pode ser definida usando aspas simples ('...'
), aspas duplas ("..."
) ou triplas ('''...'''
ou """..."""
) para textos de múltiplas linhas. Além disso, a linguagem fornece uma variedade de métodos embutidos e operações que permitem modificar, pesquisar e transformar strings de maneira eficiente.
O que veremos?
Como criar e acessar strings em Python.
Como utilizar fatiamento (slicing) para extrair partes de uma string.
Métodos úteis para modificar e formatar strings.
Como utilizar operações com strings (concatenação, repetição, substituição).
Como percorrer uma string com loops e realizar buscas com expressões regulares.
Objetivos de Aprendizagem
Ao final desta aula, você será capaz de:
Compreender os conceitos fundamentais de strings em Python.
Acessar e manipular substrings utilizando indexação, fatiamento e métodos de formatação.
Percorrer strings e buscar informações.
Conceitos Fundamentais#
No contexto da programação, uma string é uma estrutura de dados fundamental utilizada para representar e manipular sequências de caracteres. Em Python, as strings são objetos da classe str e podem ser definidas utilizando aspas simples (’…’), aspas duplas (”…”) ou triplas (‘’’…’’’ ou “””…”””), permitindo a criação de textos de uma única linha ou múltiplas linhas
empty_string = ""
print(empty_string)
greetings = "Hi! My name is Snake. I have 15 years old."
print(greetings)
# Verifique o comprimento da string
Indexação de Strings em Python#
Indexação é uma técnica fundamental ao lidar com strings em Python. Ela permite acessar ou modificar individualmente os caracteres dentro de uma string. No contexto das strings, o termo “index” se refere à posição do caractere dentro da sequência.
A sintaxe básica para indexação de strings em Python é: string[index]
, onde string
é a string que você deseja trabalhar e index
é a posição do caractere que você gostaria de acessar. A contagem dos índices começa
em 0, o que significa que o primeiro caractere da string tem um índice de 0.
comedy = "Monty Python"
+---+---+---+---+---+---+
texto -> | P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 (Índices Positivos)
-------------------------
-6 -5 -4 -3 -2 -1 (Índices Negativos)
# Exemplos de indexação
Slicing em Strings: Cortando e Manuseando Seções#
O conceito de “slicing” (ou corte) é uma ferramenta poderosa em programação, especialmente quando lidamos com sequências de dados como strings. Em Python, a operação de slicing permite que você extraia ou modifique partes específicas da string sem ter que trabalhar com todos os caracteres.
A sintaxe básica para o corte de strings é:
string[start:stop]
Onde start
e stop
são índices, definindo a parte da string que você
deseja extrair. Os seguintes valores podem ser usados:
start: O índice do caractere inicial que deseja extrair. Se omitido, o corte inicia automaticamente na posição 0 (o primeiro caractere).
stop: O índice do caractere final a ser incluído no corte. Se omitido, o corte continua até o fim da string.
# Exemplo de slicing
Exercício 1:
Obtenha os caracteres “y”, “t”, “h” da string “Python”.
Use slicing para extrair apenas os últimos 4 caracteres de uma string passada pelo usuário.
# Adicione sua solução aqui
Métodos de Manipulação de Strings#
As strings são imutáveis, o que significa que, uma vez criadas, seus valores não podem ser modificados diretamente. No entanto, Python oferece uma ampla variedade de métodos embutidos que possibilitam a manipulação eficiente dessas estruturas, como a conversão de maiúsculas para minúsculas, substituição de caracteres, extração de substrings, concatenação e formatação.
frase = "Python"
frase[0] = 'J'
print(frase) # Saída: Jython
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[48], line 2
1 frase = "Python"
----> 2 frase[0] = 'J'
3 print(frase)
TypeError: 'str' object does not support item assignment
upper() e lower()#
upper(): Retorna a string em maiúsculas.
lower(): Retorna a string em minúsculas.
print(greetings.lower())
print(greetings.upper())
print(greetings.capitalize())
print(greetings.title())
strip(), lstrip() e rstrip()#
strip([chars]): Remove caracteres de ambos os lados (padrão é espaço em branco).
lstrip([chars]): Remove caracteres da esquerda.
rstrip([chars]): Remove caracteres da direita.
frase = ' Minha frase '
print(frase.strip()) # Minha frase
Operações com Strings#
As operações básicas com strings são fundamentais para qualquer tipo de manipulação de texto em Python. Aqui estão duas dessas operações essenciais: concatenação e repetição.
Concatenação de Strings (+)#
A concatenação é o processo de juntar duas ou mais strings para formar uma
única string. Em Python, você pode usar o operador +
para concatenar
strings. Aqui está um exemplo simples:
nome = 'João'
sobrenome = 'Silva'
nome_completo = nome + ' ' + sobrenome
print(nome_completo) # Saída: João Silva
Repetição de Strings (*)#
Outra operação importante é a repetição de strings. Você pode usar o
operador *
para multiplicar uma string por um número inteiro. Aqui está
como fazer isso:
frase = 'Python'
repeticao = frase * 3
print(repeticao) # Saída: PythonPythonPython
Exercício 2: Faça um programa que concatene o nome, a idade, o RG, o CPF e a cidade do usuário. As informações do usuário devem ser obtidas pela função input()
# Adicione sua solução aqui
split() e join()#
split([sep]): Divide a string em um lista de sub-strings, baseado no separador (padrão é espaço em branco).
join(iterable): Combina uma lista de strings em uma única string.
nome = 'João,Silva'
print(nome.split(',')) # ['João', 'Silva']
# Split name from email address
username = 'user@mail.com'
nomes = ['João', 'Maria']
print(','.join(nomes)) # João,Maria
# Join nome e email
username = ['user', 'mail.com']
colors = ['red', 'green', 'blue', 'yellow', 'white', 'black']
splitlines()#
splitlines(): Divide a string em um lista, considerando cada linha como uma sub-string.
frase = 'Linha 1\nLinha 2'
print(frase.splitlines())
linhas = ['Linha 1', 'Linha 2']
print('\n'.join(linhas))
replace()#
replace(old, new): Substitui a ocorrência da string old
por new
.
Strings são imutáveis, o que significa que, uma vez criadas, seus valores não podem ser modificados diretamente.
frase = 'Eu não gosto de chocolate.'
print(frase.replace('chocolate', 'mel')) # Eu não gosto de mel.
find()#
O método find()
é uma ferramenta poderosa em Python para localizar a
primeira ocorrência de um caractere ou substring dentro de outra string.
frase = 'Python é incrível.'
# Encontrar a primeira ocorrência da letra "P"
posicao_p = frase.find('P')
if posicao_p != -1:
print(f'A letra "P" foi encontrada na posição {posicao_p}.')
else:
print('A letra "P" não foi encontrada.')
f-Strings#
Em Python 3.6+, você pode usar a sintaxe chamada “f-string” ou “formatted string literal” para criar strings formatadas de forma fácil e elegante. Aqui está uma visão geral rápida desta ferramenta poderosa!
Para utilizar f-strings, você envolve o texto com aspas,
segue por um caractere especial f
, e então você pode usar a sintaxe de
formato usual para especificar os valores dos dados.
nome = 'João'
idade = 25
print(f"Olá, meu nome é {nome} e tenho {idade} anos.")
pi = 3.14159265359
print(f'O valor aproximado de pi é {int(pi)}.')
Exercício 3: Refaça o exercício 2 usando f-strings.
# Adicione sua solução aqui
Percorrendo Strings com Loops#
Você pode usar um loop for
para percorrer cada caractere de
uma string. Este método é útil quando precisamos manipular ou processar
individualmente cada elemento da string.
Iterando sobre uma string com for.
Contando caracteres específicos.
Construção de novas strings com loops.
frase = 'Python é incrível.'
for caractere in frase:
print(caractere)
Processando strings: Se você quiser manipular ou processar os caracteres de alguma forma específica enquanto percorre a string, pode fazer isso dentro do bloco de código executado no loop. Aqui está um exemplo que capitaliza cada palavra:
frase = 'Python é incrível.'
nova_frase = ''
for caractere in frase:
if caractere == ' ':
nova_frase += caractere
else:
nova_frase += caractere.upper()
print(nova_frase)
# Exemplo (atividade do notebook anterior): loop `for` e um comando `if`
frase = 'Python é incrível.'
contagem_vogais = 0
contagem_consoantes = 0
for caractere in frase:
if caractere.lower() == 'a':
contagem_vogais += 1
elif caractere.lower() == 'e':
contagem_vogais += 1
elif caractere.lower() == 'i':
contagem_vogais += 1
else:
contagem_consoantes += 1
print(f'Quantidade de vogais: {contagem_vogais}')
print(f'Quantidade de consoantes: {contagem_consoantes}')
Exercícios para Praticar#
Nível Fácil: Escreva um programa que recebe uma string do usuário e verifica se a string é um palíndromo. Palíndromo é toda palavra ou frase que pode ser lida de trás para frente e que, independente da direção, mantém o seu sentido. Exemplos:
Ada
Ana
Missa é assim.
O lobo ama o bolo.
A verificação deve ignorar “case”, ou seja, letras maiúsculas e minúsculas.
Nível Médio: Escreva um programa que recebe uma string do usuário e encontra a palavra mais frequente nessa string. Use apenas as funcionalidades básicas de strings e loops em Python, conforme visto até esta aula.
Conclusão#
O que aprendemos hoje?#
Nesta aula, exploramos os principais conceitos e técnicas para manipulação de strings em Python. Aprendemos como criar, acessar e modificar strings utilizando diferentes métodos e abordagens, além de compreender a importância das strings na programação e em aplicações do mundo real.
Próximos Passos#
Resolva os problemas na seção “Exercícios para Praticar”.
Experimentar diferentes abordagens para formatação e substituição de strings (de entrada do usuário)